使用 jq 将多个列表合并为单个列表

Pie*_*ter 4 json jq

我有一个 aws cli bash 循环生成多个 json 列表,其中包含字典。我无法让 jq 将列表合并到包含所有字典的一个大列表中。

例如

[  { "key1": "value1", "key2": "value2" },
   { "key1": "value3", "key2": "value4" }
]
[  { "key1": "value5", "key2": "value6" }
]
[  { "key1": "value7" }
]
Run Code Online (Sandbox Code Playgroud)

这通过管道传输到 jq,我希望将其合并到

[ { "key1": "value1", "key2": "value2" },
  { "key1": "value3", "key2": "value4" },
  { "key1": "value5", "key2": "value6" },
  { "key1": "value7" }
]
Run Code Online (Sandbox Code Playgroud)

J Q*_*inn 5

假设您有 jq 1.5,解决方案发布在这里:

JQ 如何将多个对象合并为一个

jq -n提供与操作员一起使用的基本技术inputs

cat FILE | jq -n '[inputs|.[]]'
Run Code Online (Sandbox Code Playgroud)

就可以了。 [inputs]将多个结果粘合到一个列表中,并且“.[]”删除添加的额外列表级别。