Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jq整合来自多个文件的JSON记录_Json_Jq - Fatal编程技术网

如何使用jq整合来自多个文件的JSON记录

如何使用jq整合来自多个文件的JSON记录,json,jq,Json,Jq,我有一个文件名列表作为shell变量,其内容如下 file_names=('one.json' 'two.json') one.json: { "key":"k1", "host": "..", "name": ".." } two.json: { "key":"k2", "host": "..", "name": ".." } 我想创建一个包含上述文件所有内容的合并文件。可以有2个以上的文件。在合并文件中,键

我有一个文件名列表作为shell变量,其内容如下

file_names=('one.json' 'two.json')
one.json:

{
      "key":"k1",
      "host": "..",
      "name": ".."    
}
two.json:

{
      "key":"k2",
      "host": "..",
      "name": ".."
}
我想创建一个包含上述文件所有内容的合并文件。可以有2个以上的文件。在合并文件中,
值将成为JSON记录的外部级别键。例如:

{
    "k1": {
      "host": "..",
      "name": ".."   
    },
    "k2": {
      "host": "..",
      "name": ".."   
    }
}
如何使用jq实现这一点?

使用:

jq -n 'INDEX(inputs; .key) | map_values(del(.key))' "${file_names[@]}"