【发布时间】:2018-08-14 07:38:27
【问题描述】:
我有一个日志如下需要用新格式解析:
2018-08-14 12:07:06,410 - MAILER - INFO - Email sent! - (TEMPORARY PASSWORD: cristronaldode ) to ['cristronaldode@eeee.com'] - Message ID: 01010165369da693-216f985f-e1b0-4dc2-bcea-8a2cd275a506-000000 Result: {'MessageId': '01010165369da693-216f985f-e1b0-4dc2-bcea-8a2cd275a506-000000', 'ResponseMetadata': {'HTTPHeaders': {'content-length': '338', 'date': 'Tue, 14 Aug 2018 04:07:05 GMT', 'x-amzn-requestid': '81bbc0c4-9f77-11e8-81fe-8502a68e3b7d', 'content-type': 'text/xml'}, 'RetryAttempts': 0, 'RequestId': '81bbc0c4-9f77-11e8-81fe-8502a68e3b7d', 'HTTPStatusCode': 200}}
输出:
2018-08-14 12:07:06,410|TEMPORARY PASSWORD: cristronaldode|cristronaldode@eeee.com|'HTTPStatusCode': 200|
我正在尝试使用 awk 和匹配功能,但不知道如何在 1 行中使用多重匹配。谢谢
更新:我使用此命令解析字段,但因为我按空格分隔字段,所以需要更正所有行中的字段。所以我想要其他解决方案。
awk -F ' ' '{print $1,$2"|"$11,$12,$13,$14,$15,$16,$17,$18,$19"|"$21"|"$48,$49}' | sed -e 's/[()]//g' | sed -e 's/[][]//g'| sed -e 's/}//g'
【问题讨论】:
-
请添加您为解决问题所做的努力?