为什么在下面的(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
它可以很好地识别它,但是除非使用该选项,否则grep
会egrep
打印整个匹配行:-o
-o, --仅匹配
仅打印行的匹配部分。
我想你想要:
$ echo -n "my-pc is beautiful" | egrep -o 'my-pc\b'
my-pc
单词边界是任何非单词字符。单词字符有:[a-zA-Z0-9_]
。因此-
不是一个单词字符。