免费注册 查看新帖 |

Chinaunix

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

[文本处理] 问个grep匹配正则的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-11 11:10 |只看该作者 |倒序浏览
本帖最后由 maorui 于 2012-10-11 11:44 编辑

想对彩色字的行进行匹配。
里面有几个固定的东西要匹配,用蓝色表示;必须是数字的用绿色;无所谓的部分用橙色;空白部分是任意个数空格或者TAB。

link information:
link 0  net1 on etherfp hipri
        mtu 1500, sap 0xcafe, broadcast FF:FF:FF:FF:FF:FF, addrlen 6
        txpkts 153611  txbytes 16931485
        rxpkts 155141  rxbytes 14799213
        latehb 0  badcksum 0  errors 0
link 1  net2 on etherfp hipri
        mtu 1500, sap 0xcafe, broadcast FF:FF:FF:FF:FF:FF, addrlen 6
        txpkts 154538  txbytes 17052206
        rxpkts 155985  rxbytes 14892482
        latehb 0  badcksum 0  errors 0

用了很多正则都不行,例如:
cat result | grep '^link(\s)*(\d)*(\s)*net2(\s)*on'
cat result | grep "^link(\s*)(\d*)(\s*)net2(\s*)on"

应该怎么写?

论坛徽章:
0
2 [报告]
发表于 2012-10-11 11:16 |只看该作者
回复 1# maorui


    完全匹配还是怎么呢? 没有明白。

论坛徽章:
0
3 [报告]
发表于 2012-10-11 11:20 |只看该作者
cat result  | grep -E '^link [0-9]{1,}  net[0-9]{1,} on etherfp hipri$'

论坛徽章:
0
4 [报告]
发表于 2012-10-11 11:21 |只看该作者
回复 1# maorui


     grep  '^link [0-9]' link.txt

论坛徽章:
0
5 [报告]
发表于 2012-10-11 11:23 |只看该作者
grep对正则表达式有限,若要支持强悍点的正则表达式请加-E选项

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2012-10-11 11:27 |只看该作者
-P参数~~           

论坛徽章:
0
7 [报告]
发表于 2012-10-11 11:42 |只看该作者
本帖最后由 maorui 于 2012-10-11 11:43 编辑

晕,发的太着急,没说清楚。里面有几个固定的东西要匹配,用蓝色表示;必须是数字的用绿色;无所谓的部分用橙色;空白部分是任意个数空格或者TAB。
link 0  net1 on etherfp hipri

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2012-10-11 12:19 |只看该作者
L_kernel 发表于 2012-10-11 11:27
-P参数~~
正解,加了-P就可以了。
  1. grep -P '^link\s*\d*\s*net1\s*on' urfile
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
9 [报告]
发表于 2012-10-11 12:29 |只看该作者
回复 7# maorui

link 0  net1 on etherfp hipri

0 => number => [0-9]+ => \d+

net1 and net2 => net + number => net\d+

more than one space or TAB => \s+

etherfp hipri => don't care (nothing in this case)

--- get answer ----------------------

grep -P '^link\s+\d+\s+net1\s+on\s+'
or
grep -P '^link\s+\d+\s+net\d+\s+on\s+'

   

论坛徽章:
0
10 [报告]
发表于 2012-10-11 14:07 |只看该作者
我用的是Solaris,不支持-P参数……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP