Bu herhangi bir çıktı üretmez. Nasıl olur?
$ echo 'this 1 2 3' | grep '\d\+'
Ancak bunlar:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
Bunların hiçbiri benim için çalışmıyor (Solaris).
—
spraff
Ben de değil. (Cygwin) Olmak mı istedin
—
Eric Wilson
\+? Bu ne anlama geliyor?
evet, Ubuntu 10.04'teyim, bash kullanıyorum. Grep'te BRE için bazı karakterlerden kaçınmanız gerekir. Man grep'de "Temel ve Genişletilmiş Normal İfadeler" i deneyin.
—
Ankur Agarwal
@FarmBoy:
—
Daenyth
+bir normal ifadede "önceki belirteçlerden biri veya daha fazlası" anlamına gelir. Bu durumda, grepvarsayılan regex motorunun gerektirdiği sözdizimi olduğundan kaçtı .
@FarmBoy: kullanıyorsanız kaçmanız
—
Keith Thompson
+gerekir grep; kullanıyorsanız egrep, kullanmaz . grep -Eeşdeğerdir egrep(en azından GNU sürümü için).