Isso não gera nenhuma saída. Por quê?
$ echo 'this 1 2 3' | grep '\d\+'
Mas estes fazem:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
Nada disso funciona para mim (Solaris).
—
spraff de
Nem eu. (Cygwin) Você pretendia ter
—
Eric Wilson
\+
? O que isso significa?
sim, estou no Ubuntu 10.04, usando o bash. Para o BRE no grep, você precisa escapar alguns caracteres. Tente "Expressões regulares básicas versus estendidas" no man grep.
—
Ankur Agarwal
@FarmBoy:
—
Daenyth de
+
em uma regex significa "um ou mais token anterior". Nesse caso, é escapado porque essa é a sintaxe exigida pelo grep
mecanismo de regex padrão de.
@FarmBoy:
—
Keith Thompson
+
precisa ser escapado se você estiver usando grep
; se você estiver usando egrep
, não. grep -E
é equivalente a egrep
(pelo menos para a versão GNU).