2

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

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

我意识到head可以在这里使用它来提取第一行,但假设文件可能不使用换行符作为记录分隔符,并且可能只是连接的对象或数组。

4

1 回答 1

4

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

我认为你可以这样做:

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

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

于 2016-03-02T15:14:03.507 回答