使用 jq,是否可以更新在某些其他属性中包含特定值的对象的属性值?
在下面的示例中,我想设置所有具有“keyname”=“foo”的对象的“value”属性的值。
示例 .json 文件如下所示:
"root" : {
"instances": [
{
"name": "1",
"configs": [
{
"keyname": "foo",
"value": "" // <- update/set this
},
{
"keyname": "barrr",
"value": "barrrr"
}
]
},
{
"name": "2",
"configs": [
{
"keyname": "foo",
"value": "" // <- update/set this
},
{
"keyname": "buzzz",
"value": "buzzz"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,但没有成功,我收到一个关于数组不是字符串的错误:
jq '(.root.instances.configs[] | select(.keyname==foo)).value = foo'
Run Code Online (Sandbox Code Playgroud)