我正在处理一个非常大的JSON文件,该文件具有类似哈希的结构:
{
"1893": {
"foo": {
"2600": {
...[snip]...
},
"3520": {
...[snip]...
}
}
"id": "foobar"
},
"123": {
"bar": {
"4989": {
...[snip]...
},
"0098": {
...[snip]...
}
}
"id": "foobaz"
},
...[snip]...
"5553": {
"baz: {
"2600": {
...[snip]...
},
"3520": {
...[snip]...
}
}
"id": "bazqux"
}
}
(此文件类似于Stripe's migration mapping file)
我想将此文件拆分为多个较小的文件,这些文件显然是有效的JSON文件。由于“根”是一个散列,因此我并不在乎该文件的拆分方式,只要生成的文件具有大约相等的项目数即可。
我尝试查看JQ,但是我似乎对如何正确实现此目标一无所知。希望对有效的JQ解决方案提供任何指导,或者在此方面有帮助的任何其他工具。
答案 0 :(得分:0)
我已经设法使用JQ来烹饪一些东西:
在检查$file
具有的项目数之后:
jq -c "length" < $file
我们建立切片索引($from
和$to
),然后将切片保存到$output
:
jq -c "to_entries[$from:$to] | from_entries" < $file > $output