regex Problem '-'

13/03/2012 - 17:42 von Helmut Schneider | Report spam
Hi,

warum matched das hier nicht, obwohl ich '-' escape?

$ echo "/usr/lib/libdb-4.8.so" | grep -o -- '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$ echo "/usr/lib/libdb-4.8.so" | grep -o '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$ echo "/usr/lib/libdb-4.8.so" | grep -Eo '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$

Für sich alleine matched es:

$ echo "/usr/lib/libdb-4.8.so" | grep -Eo '[\-]*'
-
$

Scheint an mir und nicht an der verwendetetn Shell zu liegen.

Danke und Gruß, Helmut
 

Lesen sie die antworten

#1 Werner Flamme
13/03/2012 - 18:20 | Warnen spam
Helmut Schneider [13.03.2012 17:42]:
Hi,

warum matched das hier nicht, obwohl ich '-' escape?

$ echo "/usr/lib/libdb-4.8.so" | grep -o -- '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$ echo "/usr/lib/libdb-4.8.so" | grep -o '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$ echo "/usr/lib/libdb-4.8.so" | grep -Eo '[a-zA-Z0-9\-\.\_/]*'
/usr/lib/libdb
4.8.so
$

Für sich alleine matched es:

$ echo "/usr/lib/libdb-4.8.so" | grep -Eo '[\-]*'
-
$

Scheint an mir und nicht an der verwendetetn Shell zu liegen.



Wenn es nicht an der Shell liegt, ist das hier bestimmt die flscahe NG :-)

Was soll rauskommen?

$ echo "/usr/lib/libdb-4.8.so" | grep -o '[-a-zA-Z0-9._/]*'
/usr/lib/libdb-4.8.so

Wenn ich mir die manpage ansehe, soll das "-" hinten stehen... Weil ich
da lese "Most meta-characters lose their special meaning inside bracket
expressions", habe ich mir das ganze Escapen mal geschenkt ;-)

Gruß
Werner

Ähnliche fragen