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 grepmecanismo 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).