我是否在 grep 中正确使用了插入符号?

问题描述 投票:0回答:1

这不起作用

grep -h '^zip' log*

这有效

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

log* 文件肯定包含一个名为

zip
的文件,因为第二个命令打印出文件名。但第一个根本不打印任何内容。我尝试了几个,发现脱字符号只能在括号中起到否定作用。在括号之外,并不意味着表明其后面的内容将位于单词的开头。 这里有什么问题吗?我使用的是ubuntu 12.4

regex linux ubuntu
1个回答
1
投票

单词开头

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

grep \\bzip

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

© www.soinside.com 2019 - 2024. All rights reserved.