小编Ami*_*mit的帖子

jq - 使用参数构造选择器

我想知道是否可以使用参数来构造字段名称jq.

例:

jq -rc \
   --arg secret_name ${secret_name} \
   --arg secret_value ${secret_value} \
   '.data.$secret_name = "$secret_value"'
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我想使用参数值secret_name来创建一个键.data.这可能用jq吗?

示例数据:

secret_name=abc  
secret_value=xyz 
Run Code Online (Sandbox Code Playgroud)

jq运行JSON :

{
    "apiVersion": "v1",
    "data": {},
    "kind": "Secret",
    "metadata": {
        "name": "kv-secrets",
        "namespace": "default"
    },
    "type": "Opaque"
} 
Run Code Online (Sandbox Code Playgroud)

预期产量:

{
    "apiVersion": "v1",
    "data": {
      "abc": "xyz"
    },
    "kind": "Secret",
    "metadata": {
        "name": "secrets"
    },
    "type": "Opaque"
}
Run Code Online (Sandbox Code Playgroud)

请记住,我打算运行原始命令来填充.data更多的键值对.

bash jq

3
推荐指数
1
解决办法
468
查看次数

杰青 | 更新由“select”选择的数组元素

在 JSON 数组中,我想根据节点的值选择一个数组元素,然后更新同一数组元素中的不同节点。例如在下面的 JSON 中:

{
"apiVersion": "vlabs",
"properties": {
    "orchestratorProfile": {
    "orchestratorType": "Kubernetes",
    "orchestratorRelease": "1.7",
    "orchestratorVersion": "1.7.10",
    "kubernetesConfig": {
        "kubernetesImageBase": "gcrio.azureedge.net/google_containers/",
        "clusterSubnet": "10.105.208.0/20",
        "networkPolicy": "calico",
        "nonMasqueradeCidr": "10.0.0.0/8",
        "maxPods": 110,
        "dockerBridgeSubnet": "172.17.0.1/16"
        "addons": [
        {
            "name": "tiller",
            "enabled": true
        },
        {
            "name": "aci-connector",
            "enabled": true
        },
        {
            "name": "kubernetes-dashboard",
            "enabled": true
        },
        {
            "name": "rescheduler",
            "enabled": true
        }
        ]
    }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我想禁用所有不是“重新调度程序”的插件,即为.enabled = false数组元素设置的插件,.properties.orchestratorProfile.kubernetesConfig.addons[]其中.name != "rescheduler". 我能算出的最接近的是

jq -r '.properties.orchestratorProfile.kubernetesConfig.addons[] |
  select …
Run Code Online (Sandbox Code Playgroud)

json jq

3
推荐指数
1
解决办法
956
查看次数

标签 统计

jq ×2

bash ×1

json ×1