В настоящее время я хожу в несколько журналов в bash, которые наполовину JSON, наполовину текст, как показано ниже:
{"response":{"message":"asdfasdf"}}
{"log":{"example":"asdfasdf"}}
here is some text
{"another":{"example":"asdfasdf"}}
more text
Каждая строка является либо полным действительным JSON объектом, либо некоторым текстом, который не сможет выполнить синтаксический анализатор JSON.
Я посмотрел на jq
и underscore-cli
, чтобы посмотреть, есть ли у них варианты возврата недопустимого объекта в случае сбоя, но я не вижу никаких .
Я также пытался использовать оператор ||
для отслеживания переданного по трубопроводу ввода, но я как-то теряю значение. Может, мне стоит больше читать по трубам? Пример: getLogs -t | (underscore print || cat)
Я думаю, я мог бы написать скрипт, который хранит входные данные. Отформатируйте его и верните результат в случае успеха. Если это не удалось, вернули сохраненное значение. Я чувствую, что должен быть более простой способ, хотя. Есть мысли?