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, grep
varsayı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 -E
eşdeğerdir egrep
(en azından GNU sürümü için).