【发布时间】:2019-03-05 11:31:10
【问题描述】:
尝试将未定义数量的 JSON 文件合并为一个,每个文件都以自己的键表示(使用 jq)。
例子:
$ cat foo.json
{
"test1":"Foo"
}
$ cat bar.json
{
"test2":"Bar"
}
$ jq -s "{`ls | sed -r 's/\.json$/: \./' | tr '\n' ', ' | sed 's/.$//'`}" `ls`
{
"foo": [
{
"test1": "Foo"
},
{
"test2": "Bar"
}
],
"bar": [
{
"test1": "Foo"
},
{
"test2": "Bar"
}
]
}
当我试图输出时:
{
"foo": {
"test1": "Foo"
},
"bar": {
"test2": "Bar"
}
}
例如:foo 是第一个文件的名称,并应作为最终输出中其内容的键。
(另外,我觉得为同一件事调用两次ls 并不是很漂亮,但不确定是否有解决方法)。
【问题讨论】: