SED nach mehreren Mustern suchen lassen

28/01/2010 - 14:37 von Knut Rauscher | Report spam
Hallo,

folgendes Muster ist gegeben:

<TEST></P>%0d%0a<P><STRONG><FONT color=#000000>Versandnotiz<

Nun würde ich gerne mit sed als erstes nach

">Versandnotiz<" suchen. Es interessiert nicht, was links
und rechts davon steht.

Wenn der Suchbegriff in der Zeile gefunden wurde,
dann laufe so lange zurück bis man auf das erste
"/" trifft. Jetzt wieder nach vorne, bis man auf das
erste ">" trifft. Ab hier soll dann alles bis
Zum Zeilenende gelöscht werden.

Das Ergebnis soll dann so aussehen:

<TEST></P>

Ich bekomme das mit sed einfach nicht hin.
Meine sed Erfahrungen reichen leider nicht
so weit.

Wenn es mit awk besser geht, soll mir
das auch recht sein.

Schöne Grüße

sendet Knut
 

Lesen sie die antworten

#1 Thomas Noll
28/01/2010 - 17:15 | Warnen spam
Knut Rauscher wrote:


Hallo,

folgendes Muster ist gegeben:

<TEST></P>%0d%0a<P><STRONG><FONT color=#000000>Versandnotiz<

Nun würde ich gerne mit sed als erstes nach

">Versandnotiz<" suchen. Es interessiert nicht, was links
und rechts davon steht.

Wenn der Suchbegriff in der Zeile gefunden wurde,
dann laufe so lange zurück bis man auf das erste
"/" trifft. Jetzt wieder nach vorne, bis man auf das
erste ">" trifft. Ab hier soll dann alles bis
Zum Zeilenende gelöscht werden.

Das Ergebnis soll dann so aussehen:

<TEST></P>



sed -n -r 's:(.*/[^>]*>).*>Versandnotiz<.*:\1:p'

Mit GNU sed 4.2.1

Der nicht spezifizierte Fall, wenn "Versandnotiz" nicht gefunden wird oder
kein / davor zu finden ist, habe ich mal als weglassen interpretiert.


Woo Hoo Woo Hoo Hoo

Ähnliche fragen