这不起作用
grep -h '^zip' log*
这有效
grep -h '[^bg]zip' log*
log* 文件肯定包含一个名为
zip
的文件,因为第二个命令打印出文件名。但第一个根本不打印任何内容。我尝试了几个,发现脱字符号只能在括号中起到否定作用。在括号之外,并不意味着表明其后面的内容将位于单词的开头。
这里有什么问题吗?我使用的是ubuntu 12.4
单词开头
^
标记行的开头,而不是单词的开头。 "foo zip"
不会与 ^zip
匹配,但 "zip foo"
会匹配。如果您想匹配单词开头的 zip
,请使用:
grep \\bzip
\b
标记单词边界,但是您需要加倍转义,因为您的 shell 会剥离一个。 (grep '\bzip'
也有效。)