grep:词尾分隔符不起作用?

grep:词尾分隔符不起作用?

为什么在下面的(e)grep尝试中,egrep无法识别词尾分隔符? ( b)?

$ echo -n "my-pc is beautiful" | egrep  'my-pc\b'
my-pc is beautiful
/home/pkaramol
$ echo -n "my-pc-vol2 is beautiful" | egrep  'my-pc\b'
my-pc-vol2 is beautiful

与普通结果相同吗grep

答案1

它可以很好地识别它,但是除非使用该选项,否则grepegrep打印整个匹配行:-o

-o, --仅匹配

仅打印行的匹配部分。

我想你想要:

$ echo -n "my-pc is beautiful" | egrep -o 'my-pc\b'
my-pc

单词边界是任何非单词字符。单词字符有:[a-zA-Z0-9_]。因此-不是一个单词字符。

相关内容