小编Tad*_*rić的帖子

使用 jq 更新包含具有特定值的其他属性的对象的属性

使用 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)

bash configuration json jq

8
推荐指数
1
解决办法
8434
查看次数

标签 统计

bash ×1

configuration ×1

jq ×1

json ×1