Json jq:从其他文件向列表中添加新元素

Json jq:从其他文件向列表中添加新元素,json,file,merge,jq,Json,File,Merge,Jq,我有两个json文件。 文件1: 文件2: [ { "name": "first name", "path": [{ "matcher": "exact", }] }, { ... } ] 我想将文件2中的所有项目添加到文件1中的.data.items列表中。 我怎样才能做到这一点 提前谢谢 假设两个文件都包含有效的JSO

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

文件2:

[
  { 
    "name": "first name",
    "path": [{
            "matcher": "exact",
    }]
  },
  {
    ...
  }
]
我想将文件2中的所有项目添加到文件1中的.data.items列表中。 我怎样才能做到这一点


提前谢谢

假设两个文件都包含有效的JSON,您可能会做比以下更糟糕的事情:

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

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

items=$(jq -c ' . | { data: { items: . }} ' 2.json)

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

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