Как отфильтровать некорректные jsonlines с помощью jq
При использовании данных jsonlines с jq некорректные строки могут вызывать ошибки парсинга, например:
e.g
jq: parse error: Expected separator between values at line 61755, column 1954Чтобы отфильтровать некорректные строки, вы можете использовать следующую команду:
filter_invalid_jsonlines.sh
jq -R 'fromjson?'Это пропустит корректные JSON-строки и вернёт null для некорректных. Затем вы можете отфильтровать значения null с помощью select. Последующая команда должна корректно обрабатывать значения null, но она не увидит некорректных строк.
Пример использования
filter_and_process_jsonlines.sh
cat data.json | jq -R 'fromjson?' | jq -c '{name: .node?.name?}'Check out similar posts by category:
JSON
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow