Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : SED alles zwischen 2 Bezeichnern löschen



rbrosi
02-12-2004, 14:39
Hallo,

ich möchte in einem XML-File

alles zwischen einem Bezeichner <e01_3035>DP</e01_3035>

und einem zweiten Bezeichner

</NAD>

löschen

Da können Zeilen dazwischen stehen oder auch nicht.

Kann ich das mit einem einfachen sed-befehl ?

MFG

Rainer

peschmae
02-12-2004, 17:25
Matching über mehrere Zeilen musst du den Befehlen voranstellen. Das meinnt allerdings dann etwas ein bisschen anderes:

sed '/<e01_3035/,/NAD>/ d'

kümmert sich quasi nur um die Zeilen von <e01_3035 bis NAD - und der Befehl ist einfach löschen.

Allerdings werden damit auch die erste und die letzte Zeile gelöscht. d.h. du müsstest eventuell mit sowas vorbearbeiten:
s#</NAD>#\n</NAD>#

MfG Peschmä