Эффективно получить первую запись файла 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 просто получает один вход из потока. Не нужно проходить через остальную часть входного потока.

Другие вопросы по тегам