这行不通
grep -h '^zip' log*
这行得通
grep -h '[^bg]zip' log*
log* 文件肯定包含一个名为 zip
的文件,因为第二条命令会打印出文件名。但是第一个根本不打印任何东西。我尝试了几次,发现插入符号只能用作括号中的否定。在括号之外,它并不意味着它后面的东西会在单词的开头。
这里有什么问题?我正在使用 ubuntu 12.4
最佳答案
beginning of the word
^
标记行的开始,而不是单词。 "foo zip"
不会匹配 ^zip
,但 "zip foo"
会。如果你想在单词的开头匹配 zip
,使用这个:
grep \\bzip
\b
标记了一个单词边界,但是你需要加倍使用转义符,因为你的 shell 会去掉一个。 (grep '\bzip'
也有效。)
关于regex - 插入符号不适用于 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29689234/