Chinaunix
标题:
error统计,求助高手
[打印本页]
作者:
gnpdelove
时间:
2016-02-18 11:39
标题:
error统计,求助高手
公司里目前用的solaris
cat gap1.dat
O:460
E:1181
E:1182
E:1181
PASS:1451
PASS:1562
O:3572
PASS:1376
PASS:1857
PASS:1894
PASS:2003
O:461
E:7665
E:7665
E:1181
E:1182
PASS:3484
E:1188
E:1183
E:1181
对gap1.dat有如下操作,gap1.dat是一台设备某一天的log,每天生成的log均有不同
以带有SS关键字的那一行为分割线,对O:460 E:1181等error进行统计,这些error只是一部分大概有300多个,每天出现的都不一样
有几点要求:
1. 连续带有pass的行合并成一行
pass行可能出现在第一行,也可能出现在最后一行,或者两者都出现,也有可能不出现
2. pass行和下个pass行之间出现的重复error算一件,比如
O:460
E:1181
E:1182
E:1181
PASS:1451
PASS:1562
上面的E:1181算一件
PASS:2003
O:461
E:7665
E:7665
E:1181
E:1182
PASS:3484
上面的E:7665算一件
3.最后我需要的结果是:
O:460 1
E:1181 3
E:1182 2
O:3572 1
O:461 1
E:7665 2
E:1188 1
E:1183 1
作者:
leijskg
时间:
2016-02-18 13:50
提示:
作者被禁止或删除 内容自动屏蔽
作者:
haooooaaa
时间:
2016-02-18 13:53
awk 'function count(){for(i in b)a[i]++;delete b}!/SS/{b[$0]}/SS/{count()}END{count();for(i in a)print i,a[i]}' file
复制代码
作者:
zxy877298415
时间:
2016-02-18 14:48
awk -v RS="PASS:[0-9]+" 'NF>0{for(i=1;i<=NF;i++) {if(!a[$i]) b[$i]++;a[$i]++}delete a }END{for(i in b) print i,b[i]}' file
复制代码
回复
1#
gnpdelove
作者:
gnpdelove
时间:
2016-02-18 16:51
你好,能不能解释一下每一步的含义,求指导,谢谢
回复
3#
haooooaaa
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2