这不起作用
grep -h '^zip' log*
这是有效的
grep -h '[^bg]zip' log*
log *文件肯定包含名为zip
的文件,因为第二个命令打印出文件名。但第一个根本不打印任何东西。我尝试了几个,看到插入符号仅作为括号中的否定。在括号之外,并不意味着表示跟随它的东西将出现在单词的开头。
这有什么不对?我正在使用ubuntu 12.4
答案 0 :(得分:1)
单词的开头
^
标志着行的开头,而不是单词。 "foo zip"
与^zip
不匹配,但"zip foo"
会匹配。如果您想在单词的开头匹配zip
,请使用:
grep \\bzip
\b
标记一个单词边界,但是你需要加倍转义,因为你的shell会剥离一个。 (grep '\bzip'
也有效。)