bashscript将多个json文件合并为一个json

时间:2019-11-16 16:36:52

标签: json bash jq

我有一个文件夹,其中包含json文件的子文件夹。

我需要编写一个bash脚本,将所有json文件组合成一个大的有效json。

1)首先尝试使用jq将所有json文件首先合并到每个目录中,然后我将需要再次将它们重新合并到一个大文件中。 我没有设法使它工作。我使用了以下命令:

jq -rs 'reduce .[] as $item ({}; . * $item)'

2)另一种选择是在开头以“ [”创建一个json文件->处理所有目录中的所有文件,并为每个文件附加内容->在末尾附加“]”。

仅使用jq,我可以通过第一种方法获得相同的结果吗?

1 个答案:

答案 0 :(得分:0)

一种非常简单的方法是:

cat $target/*/*.json | jq -s 'flatten' > $merged_json

或者如果文件太多

find $target/* -name \*json cat {} |  jq -s 'flatten' > $merged_json