Эффективно получить первую запись файла JSONL
Можно ли эффективно получить первую запись файла JSONL без использования всего потока / файла? Один из способов, которым я смог сделать это неэффективно, заключается в следующем:
curl -s http://example.org/file.jsonl | jq -s '. [0]'
Я понимаю что head
может использоваться здесь для извлечения первой строки, но предположим, что файл может не использовать новую строку в качестве разделителя записей и может просто быть объединенными объектами или массивами.
1 ответ
Если я правильно понимаю, формат JSONL просто возвращает поток объектов JSON, который jq обрабатывает довольно хорошо. В лучшем случае, когда вам нужен первый элемент, вы можете просто использовать input
фильтр, чтобы захватить первый элемент.
Я думаю, вы могли бы просто сделать это:
$ curl -s http://example.org/file.jsonl | jq -n 'input'
Вам нужен нулевой ввод -n
чтобы сразу не обрабатывать ввод input
просто получает один вход из потока. Не нужно проходить через остальную часть входного потока.