是否可以在不消耗整个流/文件的情况下有效地获取JSONL文件的第一条记录?我能够低效地这样做的一种方法是:
curl -s http://example.org/file.jsonl | jq -s '.[0]'
我意识到head
可以在这里使用它来提取第一行,但假设文件可能不使用换行符作为记录分隔符,并且可能只是连接的对象或数组。
是否可以在不消耗整个流/文件的情况下有效地获取JSONL文件的第一条记录?我能够低效地这样做的一种方法是:
curl -s http://example.org/file.jsonl | jq -s '.[0]'
我意识到head
可以在这里使用它来提取第一行,但假设文件可能不使用换行符作为记录分隔符,并且可能只是连接的对象或数组。
如果我理解正确,JSONL 格式只会返回一个 JSON 对象流,jq 可以很好地处理这些对象。您想要第一个项目的最佳情况下,您可以使用input
过滤器来获取第一个项目。
我认为你可以这样做:
$ curl -s http://example.org/file.jsonl | jq -n 'input'
您需要空输入-n
以不立即处理输入,然后input
只从流中获取一个输入。无需遍历输入流的其余部分。