我有一个日志文件,我想使用模式获取内容
日志文件将如下所示
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日志
答案 0 :(得分:0)
您的日志文件看起来像json格式,您可以在bash中使用jq进行解析,这非常有用,请检查此链接Working with JSON in bash using jq