这不会产生任何输出。怎么会?
$ echo 'this 1 2 3' | grep '\d\+'
但是这些可以做到:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
这些都不适合我(Solaris)。
—
spraff 2011年
我也不。(西格温)你是说要吃
—
埃里克·威尔逊
\+
?那是什么意思?
是的,我使用bash在Ubuntu 10.04上。对于grep中的BRE,您必须转义一些字符。在man grep中尝试“基本vs扩展正则表达式”。
—
Ankur Agarwal
@FarmBoy:
—
2011年
+
在正则表达式中表示“一个或多个先前令牌”。在这种情况下,它已被逸出,因为这grep
是默认regex引擎所需的语法。
@FarmBoy:
—
基思·汤普森
+
如果您正在使用grep
,则需要转义;如果您使用egrep
,则不会。 grep -E
等价于egrep
(至少对于GNU版本)。