高效获取JSONL文件的第一条记录

Efficiently get the first record of a JSONL file

是否可以在不消耗整个流/文件的情况下有效地获取 JSONL 文件的第一条记录?我能够低效地这样做的一种方法如下:

curl -s http://example.org/file.jsonl | jq -s '.[0]'

我意识到 head 可用于提取第一行,但假设该文件可能不使用换行符作为记录分隔符,而可能只是串联的对象或数组。

如果我理解正确,JSONL 格式只是 returns jq 处理得很好的 JSON 对象流。最好的情况是您想要第一个项目,您可以使用 input 过滤器来获取第一个项目。

我认为你可以这样做:

$ curl -s http://example.org/file.jsonl | jq -n 'input'

您需要空输入 -n 才能不立即处理输入,然后 input 只会从流中获取一个输入。无需遍历输入流的其余部分。