免费注册 查看新帖 |

Chinaunix

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

帮忙解析以下的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-24 14:35 |只看该作者 |倒序浏览
zgrep  13829055816 FEE.log.2011-11-14.gz|perl -ne 'if (/^\[(\d+)\]/) {print "$1\n"}'|uniq -c|awk '{print "zgrep " $2 " FEE.log.2011-11-14.gz"}'|sh|perl -ne 'BEGIN {$/=undef}
           @data=$_=~/(
                   \[\d+\]\++IN.{31}  
                   \[\d+\]\[QueryTaoCanNew
                   [^\+]+
                   \[\d+\][^\+]+13829055816
                   [^\+]+\++INEND\++\n
                   \[\d+\]\++OUT.{31}
                   \[\d+\]\[QueryTaoCanNew
                   [^\+]+\[\d+\]\++OUTEND\++\n   )
               /sxg;
               print "@data\n"'


/sxg是什么意,IN.{31}代表什么。还有[^\+]+
是什么含义,望大侠指教

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
2 [报告]
发表于 2011-11-24 22:24 |只看该作者
本帖最后由 rubyish 于 2011-11-24 22:27 编辑

适合喜欢学习perl正则的童鞋。

[精华] Perl 中的正则表达式

论坛徽章:
0
3 [报告]
发表于 2011-11-24 23:19 |只看该作者
具体要看看FEE.log.2011-11-14.gz文件的内容才可以分析出来

论坛徽章:
0
4 [报告]
发表于 2011-11-25 10:39 |只看该作者
回复 3# inchonline


   日志内容如下:

  
  [950446]++++++++++IN++2011-11-14 11:50:39+++++++++
[950446][QueryTaoCanNew]
[950446]  ┌Struct Begin[0x02]
[950446]  ├─[13829055816]
[950446]  ├─[0]
[950446]  └Struct End[0x12]
[950446]+++++++++++++++++INEND+++++++++++++++++++++
[950446]+++++++++OUT++2011-11-14 11:50:39+++++++++
[950446][QueryTaoCanNew]
[950446]  ┌Struct Begin[0x02]
[950446]    ┌Array Begin[0x03]
[950446]    ├─[1]
[950446]      ┌Struct Begin[0x02]
[950446]      ├─[0]
[950446]      ├─[0]
[950446]      ├─[0]
[950446]      ├─[0]
[950446]      ├─[20990909232323]
[950446]      ├─[0]
[950446]      └Struct End[0x12]
[950446]    └Array End[0x13]
[950446]  ├─[1]
[950446]  ├─[没有符合条件的记录]
[950446]  └Struct End[0x12]
[950446]+++++++++++++++++OUTEND+++++++++++++++++++++


多谢指教

论坛徽章:
0
5 [报告]
发表于 2011-11-26 12:45 |只看该作者
回复 1# HRKOO


    /xsg ,  x表示忽略正则表达式里的空白,s表示single即整个表达式为一行,g即全局, IN.{31}, 表示IN后有31个字符,[^\+]+, 表示或者以非+开头的一个或多个的字符。

论坛徽章:
0
6 [报告]
发表于 2011-12-07 08:10 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2011-12-07 20:10 |只看该作者
回复 5# inchonline


        感谢楼上回答,想请问一下。
[^\+]+\[\d+\]\++OUTEND\++\n 这行是否可以写成:[^\+]+\++INEND\++\n
形式。比如:[^\+]+\++OUTEND\++\n
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP