nochmal sed

25/01/2008 - 10:38 von Chris | Report spam
Moin,
irgendwie schnall ich sed noch nicht so recht.
Habe hier eine Textdatei mit Inhalt
z1_bla z2_bla z1_blub z2_blub z1_bliblub z2_bliblub usw...
Nun erwarte ich von dem Befehl:

sed s/z2_*\s//g

dass jede Zeichenkette, die mit z2_ beginnt und mit einem Leerzeichen endet
entfernt wird.
Irgendwie ist das Ergebnis aber:

z1_bla bla z2_bla bla z3_bla bla usw...

Kann mir das bitte jemand erklaeren?
Vielen Dank schonmal,
Chris
 

Lesen sie die antworten

#1 Heike C. Zimmerer
25/01/2008 - 11:29 | Warnen spam
Chris writes:

Nun erwarte ich von dem Befehl:

sed s/z2_*\s//g

dass jede Zeichenkette, die mit z2_ beginnt und mit einem Leerzeichen endet
entfernt wird.



sed erwartet einen regulàren Ausdruck. Weder das '*' noch das '\s'
haben in einem regulàren Ausdruck die Bedeutung, die Du ihnen
zumisst. '*' bedeutet, dass der vorhergehende Ausdruck (hier das '_')
beliebig oft (inklusive keinmal) wiederholt sein darf, '\s' ist
undefiniert.

Ich glaube, Du solltest kurz mal einen Blick in eine Einführung zu
regulàren Ausdrücken werfen, davon gibt es viele bei der Suchmaschine
Deines geringsten Misstrauens. Die können Dir das besser erklàren als
jedes kurze Kochrezept hier.

Ähnliche fragen