插入符号不适用于grep

时间:2015-04-17 02:31:24

标签: regex linux ubuntu

这不起作用

grep -h '^zip' log*

这是有效的

grep -h '[^bg]zip' log*

log *文件肯定包含名为zip的文件,因为第二个命令打印出文件名。但第一个根本不打印任何东西。我尝试了几个,看到插入符号仅作为括号中的否定。在括号之外,并不意味着表示跟随它的东西将出现在单词的开头。 这有什么不对?我正在使用ubuntu 12.4

1 个答案:

答案 0 :(得分:1)

  

单词的开头

^标志着行的开头,而不是单词。 "foo zip"^zip不匹配,但"zip foo"会匹配。如果您想在单词的开头匹配zip,请使用:

grep \\bzip

\b标记一个单词边界,但是你需要加倍转义,因为你的shell会剥离一个。 (grep '\bzip'也有效。)