一尘不染

jq,拆分数组的巨大json并保存到以值命名的文件中

json

我有一个包含对象数组的json,每个对象在以下位置均包含唯一值:

"id":"value"

我遵循了另一个答案,我可以使用jq和awk将整个文档分为多个文件

jq -c ".[]" big.json | gawk '{print > "doc00" NR ".json";}'

这样,输出文件将按顺序命名。
我如何使用id值命名文件?


阅读 235

收藏
2020-07-27

共1个答案

一尘不染

对于数组中的每个元素,将id和元素本身打印在两行中,因此您可以从奇数行中获取id并将偶数行打印到以id命名的文件中。

jq -cr '.[] | .id, .' big.json | awk 'NR%2{f=$0".json";next} {print >f;close(f)}'
2020-07-27