【问题标题】:Splitting a larger json file into smaller files将较大的 json 文件拆分为较小的文件
【发布时间】:2018-08-21 20:52:33
【问题描述】:

我有一个 2.37 GB 的 json 文件,包含大约 210 万条记录。我想使用 jq 遍历文件并每 100000 条记录创建一个新文件。

part1.json part2.json part3.json part4.json part5.json 等等

有人用 jq 做过这个吗?

【问题讨论】:

  • 按原样使用文件有问题吗?文件是否必须全部重新组合在一起才能最终使用一个连贯的对象/数组?一段有效的 JSON 总是这两件事之一......如果你把它分成每 x 条记录,那么你大概必须分成多个数组......然后它是否仍然具有相同的含义?也许这对您的目的无关紧要,但只是需要考虑的事情。
  • @oharr - 我相信你已经在github.com/stedolan/jq/issues/1712 提出过这个问题;那里给出了答案,并建议如果您还有其他问题,您应该提供更多详细信息。另请参阅minimal reproducible example

标签: json jq


【解决方案1】:

您可以将 jq 与 split 结合使用来编写这些文件。

$ jq -nc --stream 'fromstream(1|truncate_stream(inputs))' large_file.json |
    split -dl 100000 -additional-suffix=.json - part

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2012-06-26
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多