无法使用Shell和python解析日志文件

问题描述 投票:-1回答:1

我正在尝试使用shell或python脚本解析日志文件。我用awk和sed,但没有运气。有人可以帮我解决这个问题吗?下面是输入和期望的输出。

输入:

customer1:123
SRE:1
clientID:1
Error=1
customer1:124
SRE:1
clientID:1
Error=2
customer1:125
SRE:1
clientID:1
Error=3
customer1:126
SRE:1
clientID:1
Error=4

输出:

客户|错误123 1124 2125 3126 4

shell logging awk sed
1个回答
0
投票

通常会显示您的一些作品或到目前为止您已经尝试过的东西,但这是您正在寻找的粗略猜测。

tmp$ awk -F: '/^customer1:/ {CUST=$2} ; /^Error/ {split($0,a,"=") ; print CUST, a[2]} ' t

或按行细分:

tmp$ awk -F: '\
> /^customer1:/ {CUST=$2} ; \
> /^Error/ {split($0,a,"=") ; print CUST, a[2]} \
> ' t
123 1
124 2
125 3
126 4

第一行

/^customer1:/ {CUST=$2} ;

做两件事-将以customer1开头的行(^表示开头)匹配,并且这些行自动在:上分割,因为我们在命令的开头说了-F:。

/^Error/ {split($0,a,"=") ; print CUST, a[2]} ;

匹配以Error开头的行,在定界符“ =”上将这些行拆分为数组a,然后输出CUST的最后一个值以及错误行的第二个字段。

希望一切都有意义。值得阅读awk教程,例如https://www.grymoire.com/Unix/Awk.html

© www.soinside.com 2019 - 2024. All rights reserved.