我有一个文件夹,其中包含 json 文件的子文件夹。
我需要编写一个 bash 脚本,将所有 json 文件组合成一个大的有效 json。
1)首先尝试使用 jq 将所有 json 文件首先合并到每个目录中,稍后我需要再次将所有文件合并到一个大文件中。我没能成功。我使用了这个命令:
jq -rs 'reduce .[] as $item ({}; . * $item)'
Run Code Online (Sandbox Code Playgroud)
2)其他选项是在开头创建一个带有“[”的json文件 --> 处理所有目录中的所有文件,并为每个文件附加内容 --> 在末尾附加“]”。
仅使用 jq 可以通过第一种方式获得相同的结果吗?
Ech*_*444 10
一个非常简单的方法是:
jq -s 'flatten' $target/*/*.json > $merged_json
Run Code Online (Sandbox Code Playgroud)
另一种选择(如果您需要使用|):
cat $target/*/*.json | jq -s 'flatten' > $merged_json
Run Code Online (Sandbox Code Playgroud)
或者如果文件太多
find $target/* -name \*json cat {} | jq -s 'flatten' > $merged_json
Run Code Online (Sandbox Code Playgroud)