我正在嘗試使用 jq 更新 json 檔案中的布林值。
我的 json 檔案是這樣的:
{
"kind": "KubeletConfiguration",
"apiVersion": "kubelet.config.k8s.io/v1beta1",
"address": "0.0.0.0",
"authentication": {
"anonymous": {
"enabled": true
},
"webhook": {
"cacheTTL": "2m0s",
"enabled": true
},
"x509": {
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
}
},
"authorization": {
"mode": "Webhook",
"webhook": {
"cacheAuthorizedTTL": "5m0s",
"cacheUnauthorizedTTL": "30s"
}
},
....omitted
我想用布林值更新 .authentication.anonymous.enabled 值false
我嘗試了以下方法:
jq --arg new false '.authentication.anonymous.enabled |= $new' config.json
這會將值更新為false,但它是作為字串而不是布林值進行的。如下:
{
"kind": "KubeletConfiguration",
"apiVersion": "kubelet.config.k8s.io/v1beta1",
"address": "0.0.0.0",
"authentication": {
"anonymous": {
"enabled": "false"
},
"webhook": {
"cacheTTL": "2m0s",
"enabled": true
},
"x509": {
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
}
},
"authorization": {
"mode": "Webhook",
"webhook": {
"cacheAuthorizedTTL": "5m0s",
"cacheUnauthorizedTTL": "30s"
}
},
....omitted
如何將其更新為布林值(值周圍沒有引號)?
uj5u.com熱心網友回復:
用于--argjsonJSON 引數。此外,您只需要=此處的賦值運算子,因為 RHS 的評估不依賴于 LHS 背景關系。
jq --argjson new false '.authentication.anonymous.enabled = $new' config.json
演示
如果您只想切換該欄位,則可以在沒有引數和變數的情況下進行:
jq '.authentication.anonymous.enabled |= not' config.json
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/425938.html
