JSON配列では、ノードの値に基づいて配列要素を選択し、同じ配列要素内の別のノードを更新したいと考えています。例えば。下記のJSONに:JQ | `select`で選択した配列要素を更新する
{
"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
}
]
}
}
}
}
私はすなわち、「予定変更」ではありませんすべてのアドオンを無効にするアレイ.properties.orchestratorProfile.kubernetesConfig.addons[]
.name != "rescheduler"
の要素について.enabled = false
を設定します。私は仕事ができる最も近い私は常に配列の外にデータを失う、
jq -r '.properties.orchestratorProfile.kubernetesConfig.addons[] |
select (.name != "rescheduler") | .enabled = false'
が、この、または私が試した他の方法でした。
期待される結果は次のとおりです。
{
"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": false
},
{
"name": "aci-connector",
"enabled": false
},
{
"name": "kubernetes-dashboard",
"enabled": false
},
{
"name": "rescheduler",
"enabled": true
}
]
}
}
}
}
は、どのように私はこれをやって行くのですか?どんなアイデアや助けや指導も前もって評価されます。
私はこのようにかっこを使用することはできませんでした!答えをありがとう。 – Amit