红联Linux门户
Linux帮助

【问题】为什么不能用大括号{}?

发布时间:2014-12-04 13:24:44来源:红联作者:iami
我遇到的问题是在在使用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
文章评论

共有 5 条评论

  1. 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 也是不行。

  2. linuxuser2014 于 2014-12-05 14:22:50发表:

    MARK

  3. 唔新 于 2014-12-05 08:48:28发表:

    顶沙发

  4. t12345pk 于 2014-12-04 20:02:12发表:

    mark

  5. yehg01 于 2014-12-04 18:58:03发表:

    花括号{}在bash中有特殊含义的,属于保留字符。所以在正则表达式中使用{}必须加上\消掉特殊含义才能用,把{N,M}改成\{N,M\}再试试看吧