免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 8791 | 回复: 32
打印 上一主题 下一主题

awk过滤log的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-01-07 13:16 |只看该作者 |倒序浏览
根据客户的要求,要把运营人员的全部操作日志拿出来给他们,然后我这边就要对日志进行分析,过滤掉他们不需要的、接口打印的日志,举个例子,日志里面有很多这样的:
[INFO ] 2012-01-05 11:56:16,368  1791723191 [com.zxun.util.XmlParse.createXML(XmlParse.java:63)] method:开始创建xml...
[INFO ] 2012-01-05 11:56:16,368  1791723191 [com.zxun.util.XmlParse.createXML(XmlParse.java:94)] method:创建XML成功,将doc---->String
[INFO ] 2012-01-05 11:56:16,369  1791723192 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:8] method:【创建 xml 成功]
[INFO ] 2012-01-05 11:56:43,632  1791750455 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:49)] method:收到软通接口调用信息
[INFO ] 2012-01-05 11:56:43,632  1791750455 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:73)] method:COPID合法!开始查询数据库中数据!
[INFO ] 2012-01-05 11:56:43,679  1791750502 [com.zxun.dao.impl.BaseDaoImpl.findAll(BaseDaoImpl.java:53)] method:resultList:7
[INFO ] 2012-01-05 11:56:43,679  1791750502 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:77)] method:查询结果长度为:7
[INFO ] 2012-01-05 11:56:43,697  1791750520 [com.zxun.dao.impl.BaseDaoImpl.update(BaseDaoImpl.java:91)] method:update db failed.update tinformation ti set ti.dsissue = sysdate where ti.sonline=1 and ti.dsissue is null
[INFO ] 2012-01-05 11:56:43,698  1791750521 [com.zxun.util.XmlParse.createXML(XmlParse.java:63)] method:开始创建xml...
我想把这样的全部给过滤掉,如果使用$0!~/XmlParse.java:63/&&$0!~/XmlParse.java:94/ ...也可以,但不仅仅是这部分重复打印的日志,还有别的,我想可不可以这样if($0!~/XmlParse.java:63/);next下面的8行。awk是按行处理的脚本语言,对于处理当前行NR,如果~/XmlParse.java:63/,next 8次,以我目前的水平,感觉awk是不能这么做的,next只能next当前行的。所以发帖到这里,请教一下大家。用sed应该是可以这么做的,但本人只会简单的sed,复杂的不会,如果哪个朋友方便,发个脚本出来,感谢!

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
2 [报告]
发表于 2012-01-07 14:04 |只看该作者
回复 1# linux_kaige


    你重新编辑下帖子吧,把数据放到code里,看的费劲

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2012-01-07 14:41 |只看该作者
/......./{flag=8;...}
flag>0{flog--;...}

论坛徽章:
0
4 [报告]
发表于 2012-01-07 17:08 |只看该作者
回复 2# yinyuemi




根据客户的要求,要把运营人员的全部操作日志拿出来给他们,然后我这边就要对日志进行分析,过滤掉他们不需要的、接口打印的日志,举个例子,日志里面有很多这样的:
  1. [INFO ] 2012-01-05 11:56:16,368  1791723191 [com.zxun.util.XmlParse.createXML(XmlParse.java:63)] method:开始创建xml...
  2. [INFO ] 2012-01-05 11:56:16,368  1791723191 [com.zxun.util.XmlParse.createXML(XmlParse.java:94)] method:创建XML成功,将doc---->String
  3. [INFO ] 2012-01-05 11:56:16,369  1791723192 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:8] method:【创建 xml 成功]
  4. [INFO ] 2012-01-05 11:56:43,632  1791750455 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:49)] method:收到软通接口调用信息
  5. [INFO ] 2012-01-05 11:56:43,632  1791750455 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:73)] method:COPID合法!开始查询数据库中数据!
  6. [INFO ] 2012-01-05 11:56:43,679  1791750502 [com.zxun.dao.impl.BaseDaoImpl.findAll(BaseDaoImpl.java:53)] method:resultList:7
  7. [INFO ] 2012-01-05 11:56:43,679  1791750502 [com.zxun.servlet.SoftWareServlet.doPost(SoftWareServlet.java:77)] method:查询结果长度为:7
  8. [INFO ] 2012-01-05 11:56:43,697  1791750520 [com.zxun.dao.impl.BaseDaoImpl.update(BaseDaoImpl.java:91)] method:update db failed.update tinformation ti set ti.dsissue = sysdate where ti.sonline=1 and ti.dsissue is null
  9. [INFO ] 2012-01-05 11:56:43,698  1791750521 [com.zxun.util.XmlParse.createXML(XmlParse.java:63)] method:开始创建xml...
复制代码
我想把这样的全部给过滤掉,如果使用$0!~/XmlParse.java:63/&&$0!~/XmlParse.java:94/ ...也可以,但不仅仅是这部分重复打印的日志,还有别的,我想可不可以这样if($0!~/XmlParse.java:63/);next下面的8行。awk是按行处理的脚本语言,对于处理当前行NR,如果~/XmlParse.java:63/,next 8次,以我目前的水平,感觉awk是不能这么做的,next只能next当前行的。所以发帖到这里,请教一下大家。用sed应该是可以这么做的,但本人只会简单的sed,复杂的不会,如果哪个朋友方便,发个脚本出来,感谢

不好意思,开始我放到code里面没发成功,就这样弄了。

   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
5 [报告]
发表于 2012-01-07 17:15 |只看该作者
回复 4# linux_kaige

  1. awk '{if($0~/XmlParse.java:63/){for(i=1;i<=8;i++){getline}}}1' log
复制代码

论坛徽章:
0
6 [报告]
发表于 2012-01-07 17:32 |只看该作者
本帖最后由 yangkyo821 于 2012-01-07 17:33 编辑
  1. sed '/XmlParse.java:63/{:a;N;/\n.*\n.*\n.*\n.*\n.*\n.*\n.*\n/d;$!ba;d}'
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-01-07 18:59 |只看该作者
回复 5# yinyuemi
跪谢!祝您在2012里,日进斗金,身边美女如云!


   

论坛徽章:
0
8 [报告]
发表于 2012-01-07 19:30 |只看该作者
回复 5# yinyuemi


    这招果然高...

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
9 [报告]
发表于 2012-01-08 01:42 |只看该作者
回复 6# yangkyo821

sed '/xxx/,+7d'
   

论坛徽章:
0
10 [报告]
发表于 2012-01-08 07:30 |只看该作者
yinyuemi 发表于 2012-01-08 01:42
回复 6# yangkyo821

sed '/xxx/,+7d'

哇,可以这样,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP