【发布时间】:2018-01-16 17:14:17
【问题描述】:
我有一个非常大的对象流,我正在尝试将其导入 MongoDB。在大约 10k 个对象之后,我不断得到一个损坏的管道,所以我希望能够更新我的导入脚本以跳过已经导入的对象并从第一个丢失的对象开始。
在我看来,用于此的工具将是 jq。我需要的是一种在第 n 号之前跳过(留空)所有项目,然后按原样输出其余项目的方法。
我尝试使用 foreach 来维护一个对象计数器,但对于我的小测试样本中的所有对象(在此处使用 bash 文档),我一直以 1 作为计数器的值:
$ jq 'foreach . as $item (0; (.+1); [ . , if . < 2 then empty else $item end ])' <<"end"
> { "item": "first" }
> { "item": "second" }
> { "item": "third" }
> { "item": "fourth" }
> end
由此产生的输出是:
[
1
]
[
1
]
[
1
]
[
1
]
欢迎提出任何建议。
【问题讨论】: