一尘不染

将JSON拆分为多个文件

json

我有从mongodb导出的json文件,如下所示:

{"_id":"99919","city":"THORNE BAY"}
{"_id":"99921","city":"CRAIG"}
{"_id":"99922","city":"HYDABURG"}
{"_id":"99923","city":"HYDER"}

大约有30000行,我想将每一行拆分成自己的.json文件。 (我正在尝试将我的数据转移到榻榻米群集上)

我尝试这样做:

cat cities.json | jq -c -M '.' | \
while read line; do echo $line > .chunks/cities_$(date +%s%N).json; done

但是我发现它似乎减少了行的负载,而当我期望30000个奇数时,运行此命令的输出仅给了我50个奇数文件!

有没有一种逻辑方法可以使此操作不使用任何适合的方法删除任何数据?


阅读 626

收藏
2020-07-27

共1个答案

一尘不染

假设您不在乎确切的文件名,如果要将输入拆分为多个文件,请使用split

jq -c . < cities.json | split -l 1 --additional-suffix=.json - .chunks/cities_
2020-07-27