fus*_*ion 3 merge json file jq
我有一个充满 json 文件的目录,其结构如下: file1
{
"products": [
{"f1": "v1"},
{"f1": "v2"}
]
}
Run Code Online (Sandbox Code Playgroud)
文件2:
{
"products": [
{"f1": "v3"},
{"f1": "v4"}
]
}
Run Code Online (Sandbox Code Playgroud)
“.products”的内容与示例中的内容不同,但我们可以假设它们是格式良好的更复杂的 json 值。
我想生成一个具有以下结构的文件:
[
{"f1": "v1"},
{"f1": "v2"},
{"f1": "v3"},
{"f1": "v4"}
]
Run Code Online (Sandbox Code Playgroud)
关于如何使用 jq 执行此操作有什么想法吗?
您可以使用以下内容:
jq --slurp 'map(.products[])' /path/to/dir/*.json
Run Code Online (Sandbox Code Playgroud)
其中/path/to/dir/*.json应该是文件列表或bash glob,它将扩展到您要使用的 JSON 文件的列表。例如,对于当前目录中的两个文件,您可以使用file1,或者简单地使用前一个 glob 将扩展到的内容。file2file{1,2}file1 file2
该--slurp标志指示jq读取数组中的所有输入,而不是单独处理它们。然后,我们将该数组的每个对象(文件的原始内容)映射到其产品的序列中。
| 归档时间: |
|
| 查看次数: |
2835 次 |
| 最近记录: |