【问题标题】:jq: add new elements to list from other filejq:将新元素添加到其他文件中的列表
【发布时间】:2021-02-04 10:38:24
【问题描述】:

我有两个 json 文件。 文件 1:

{
  "data": {
    "items": []
  }
}

文件 2:

[
  { 
    "name": "first name",
    "path": [{
            "matcher": "exact",
    }]
  },
  {
    ...
  }
]

我想将文件 2 中的所有项目添加到文件 1 中的 .data.items 列表中。 我怎样才能做到这一点?

提前致谢!

【问题讨论】:

    标签: json file merge jq


    【解决方案1】:

    如果您愿意规范化详细文件:

    items=$(jq -c ' . | { data: { items: . }} ' 2.json)
    
    jq -s '{ data: { items: map(.data.items[])}}' 1.json <(echo $items)
    

    【讨论】:

      【解决方案2】:

      假设这两个文件都包含有效的 JSON,你可以做的比:

      jq --argfile extra 2.json '.data.items += $extra' 1.json
      

      【讨论】:

        猜你喜欢
        • 2015-08-13
        • 1970-01-01
        • 2011-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多