如何使用jq整合来自多个文件的JSON记录
我有一个文件名列表作为shell变量,其内容如下如何使用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个以上的文件。在合并文件中,键
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[@]}"