我遇到的问题是在在使用awk正则表达式时候不能使用大括号标示重复出现的次数,一加上大括号就匹配不上了。
比如要匹配IP地址,假设file.txt里面存有带有IP地址的内容,在用如下代码的时候就会匹配不到:[code]awk '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/' file.txt[/code]请问有朋友知道怎么回事吗?求教。
环境是两个:
SunOS netra5220 5.10 Generic_127127-11 sun4v sparc SUNW,Netra-T5220
Linux SUSE-18 2.6.16.60-0.54.5-default #1 Fri Sep 4 01:28:03 UTC 2009 i686 athlon i386 GNU/Linux
iami 于 2015-01-06 16:38:15发表:
2# yehg01
谢谢。前段时间有事没上线,刚回不好意思。
我试了一下,换成 awk '/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/' file.txt 也是不行。
linuxuser2014 于 2014-12-05 14:22:50发表:
MARK
唔新 于 2014-12-05 08:48:28发表:
顶沙发
t12345pk 于 2014-12-04 20:02:12发表:
mark
yehg01 于 2014-12-04 18:58:03发表:
花括号{}在bash中有特殊含义的,属于保留字符。所以在正则表达式中使用{}必须加上\消掉特殊含义才能用,把{N,M}改成\{N,M\}再试试看吧