我想找到所有json文件文件的特定目录,并将其合并到一个包含所有结果数据的父结果中
我正在尝试
NullPointerExcetion
它正在查找所有数据,但是将其路径保存在result.json中,如何获取所有文件中的数据并获取所有结果的组合JSON
此命令将保存一个如下所示的 result.json 文件
find . -name *data.json | tee result.json
答案 0 :(得分:1)
您需要cat
每个文件,而不输出其名称。您还需要在每个json之前输出逗号(第一个除外),并在其中加上方括号:
#! /bin/bash
printf [
separator=""
find . -name '*data.json' -print0 | while IFS= read -d '' -r j ; do
printf $separator
separator=,
cat "$j"
done
printf ]
答案 1 :(得分:0)
此命令将搜索当前文件夹和子文件夹中的所有data * .json文件,并将它们组合为results.json(array)
find . -name data\*.json -type f | xargs cat | sed -e s/}/},/g -e \$s/,\$/]/ -e 1s/^/[/ > results.json
我已经使用以下命令进行了基本测试
echo {\"name\":\"Alex\", age:24, city:\"Tokyo\"} > sample.json
for i in {1..10} ; do cp sample.json data$i.json ; done
find . -name data\*.json -type f | xargs cat | sed -e s/}/},/g -e \$s/,\$/]/ -e 1s/^/[/ > results.json
如果您发现它不适用于特定情况,我将尝试修复它。但是到目前为止,它不适用于嵌套的json或带有数组的json。