grep включая новую строку - PullRequest
0 голосов
/ 15 мая 2019

У меня есть файл журнала, и я хочу получить содержимое с использованием шаблона

Файл журнала будет выглядеть следующим образом

2019-05-15 16:40 +07:00: data { data:
   [ { audio_incremental_num: 1,
       session_id: 'openrJEe7A_1557912549',
       stream_time: 88,
       duration: 291,
       audio_id: '749f7c75-9fe1-4dbc-b5d8-770aadfe94bc'
       version: '1.2' },
     { audio_incremental_num: 1,
       session_id: 'openrJEe7A_1557912549',
       stream_time: 88,
       duration: 291,
       audio_id: '749f7c75-9fe1-4dbc-b5d8-770aadfe94bc'
       version: '1.2' }] }
2019-05-15 16:50 +07:00: data { data:
   [ { audio_incremental_num: 1,
       session_id: 'openrJEe7A_1557912549',
       stream_time: 88,
       duration: 291,
       audio_id: '749f7c75-9fe1-4dbc-b5d8-770aadfe94bc'
       version: '1.2' },
     { audio_incremental_num: 1,
       session_id: 'openrJEe7A_1557912549',
       stream_time: 88,
       duration: 291,
       audio_id: '749f7c75-9fe1-4dbc-b5d8-770aadfe94bc'
       version: '1.2' }] }

Я пытался использовать их, но не повезло

grep -zo '2019-05-[0-9][1-9] [0-9][0-9]:[0-9][0-9] +07:00: data { data:[[:space:]]'

grep -P '2019-05-[0-9]{2} [0-9]{2}:[0-9]{2} \+07:00: data { data:(\s.*)*.*'

Примечание. Мой файл журнала фактически смешан с другим содержимым строки журнала, поэтому это не 100% журнал JSON

1 Ответ

0 голосов
/ 15 мая 2019

Ваш файл журнала выглядит как формат json, вы можете использовать jq в bash для анализа, что очень полезно, проверьте эту ссылку Работа с JSON в bash с использованием jq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...