【发布时间】:2017-05-27 10:50:49
【问题描述】:
我有从 mongodb 导出的 json 文件,如下所示:
{"_id":"99919","city":"THORNE BAY"}
{"_id":"99921","city":"CRAIG"}
{"_id":"99922","city":"HYDABURG"}
{"_id":"99923","city":"HYDER"}
大约有 30000 行,我想将每一行拆分成它自己的 .json 文件。 (我正在尝试将我的数据传输到 couchbase 集群)
我试过这样做:
cat cities.json | jq -c -M '.' | \
while read line; do echo $line > .chunks/cities_$(date +%s%N).json; done
但我发现它似乎减少了很多行,运行此命令的输出只给了我 50 个奇怪的文件,而我期望有 30000 个奇怪的文件!!
有没有一种合乎逻辑的方法可以使用任何适合的方法来使其不丢弃任何数据?
【问题讨论】:
-
BSD
date不支持%N不到一秒。您正在丢失行数,因为您每秒只生成一次唯一的输出文件名,并且您每秒处理的行数远远超过一行。 -
Convertcsv.com 有一个工具可以拆分 CSV、文本或 JSON Lines/ND 文件,请参阅:convertcsv.com/text-split.htm