- 论坛徽章:
- 0
|
有如下日志信息:
====log=====
.....
(0)aa=+s000/(1)bb=xxxx/xh=1/xl=2/xj=3/(2)cc=1111/(3)dd=+r111/(4)ee="mmmm1"/ff="wz-a1"/
(0)aa=+s111/(3)bb=yyyy/xh=1/xl=2/xj=3/(4)cc=1112/(5)dd=+r444/(6)ee="mmll1"/ff="ww-a2"/
(0)aa=+s000/(2)bb=xzzz/xh=1/xl=2/xj=3/(4)cc=1113/(5)dd=+r111/(4)ee="mmii1"/ff="wz-a2"/
(0)aa=+s222/(1)bb=xxzz/xh=1/xl=2/(2)cc=1114/(3)dd=+r333/(4)ee="mmjj1"/ff="wz-a11"/
(0)aa=+s222/(1)bb=xzzzx/xh=1/xl=2/xj=3/(2)cc=1115/(3)dd=+r333/(4)ee="mmnn1"/ff="wz-a33"/
(0)aa=+s000/(1)bb=xxyy/xh=1/xl=2/xj=3/(2)cc=1116/(3)dd=+r111/(4)ee="mmoo1"/ff="wz-a3"/
(0)aa=+s211/(1)bb=xxoo/xh=1/xl=2/(2)cc=1117/(3)dd=+r222/(4)ee="mmzz1"/ff="ww-a22"/
......
通过编写shell脚本获得aa=,dd=字段的值相同,ff=字段包含"wz"的行,列出这些行cc字段的值,并计算各自的数目。
如例中日志的输出应该是:
(0)aa=+s000/(1)bb=xxxx/xh=1/xl=2/xj=3/(2)cc=1111/(3)dd=+r111/(4)ee="mmmm1"/ff="wz-a1"/
(0)aa=+s000/(2)bb=xzzz/xh=1/xl=2/xj=3/(4)cc=1113/(5)dd=+r111/(4)ee="mmii1"/ff="wz-a2"/
(0)aa=+s000/(1)bb=xxyy/xh=1/xl=2/xj=3/(2)cc=1116/(3)dd=+r111/(4)ee="mmoo1"/ff="wz-a3"/
(0)aa=+s222/(1)bb=xxzz/xh=1/xl=2/(2)cc=1114/(3)dd=+r333/(4)ee="mmjj1"/ff="wz-a11"/
(0)aa=+s222/(1)bb=xzzzx/xh=1/xl=2/xj=3/(2)cc=1115/(3)dd=+r333/(4)ee="mmnn1"/ff="wz-a33"/
3,cc=1111,cc=1113,cc=1116
2,cc=1114,cc=1115
这样的shell脚本应该怎样写?同时由于数据量大,还要注意执行效率。
P.S.>由于这是一段日志信息,所以得出相同的值绝对不会是固定的,类似grep aa=+s000 log的命令实现是不能达到效果的,意思就是grep ... log 中...的值必为变量。 |
|