我有一个文件名列表作为外壳变量,其内容如下
file_names=('one.json' 'two.json')
one.json:
{
"key":"k1",
"host": "..",
"name": ".."
}
two.json:
{
"key":"k2",
"host": "..",
"name": ".."
}
我想创建一个合并文件,其中包含上述文件中的所有内容。可以有2个以上的文件。在合并文件中,该key
值将成为JSON记录的外层键。例如:
{
"k1": {
"host": "..",
"name": ".."
},
"k2": {
"host": "..",
"name": ".."
}
}
如何使用jq实现呢?
使用INDEX
:
jq -n 'INDEX(inputs; .key) | map_values(del(.key))' "${file_names[@]}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句