PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sed und ersetzen von "<"



fluppi
08.06.06, 20:48
Hallo,

mittlerweile habe ich schon viel mit sed experimentiert und habe jetzt doch mal wieder eine Frage.

Ich möchte die 2. Zeile in einer Datei ersetzen und zwar von

<ORDER xmlns="http://www.opentrans.org/opentrans/1.0/opentrans_order" type="standard" version="1.0">

in <ORDER>.

Nur irgendwie bekomm ich das so nicht richtig hin. Soweit ich mich erinnern kann, zählt doch für sed das "<" als Leerzeichen, oder?

Dann würde er ja meine Abfrage falsch interpretieren.
Gibt es noch eine andere Lösung?

Vielleicht zweite Zeile löschen und eine neue reinschreiben?

Der Gestreifte
08.06.06, 21:08
Gibt es noch eine andere Lösung?Bestimmt, aber wir kennen Deine noch nicht.
Maskierst Du die Klammen mittels Backslash?

fluppi
08.06.06, 21:14
Naja, ausprobiert habe ich nur

sed 's/<ORDER xmlns="http://www.opentrans.org/opentrans/1.0/opentrans_order" type="standard" version="1.0">/<ORDER>' $i > $i.neu

Aber das das nicht gehen kann, liegt ja schon fast auf der Hand... :(

Der Gestreifte
08.06.06, 21:33
Ich bin nicht gerade der Regexfex und schreibfaul, weshalb ich es nach dem ersten Leerzeichen abtrennen würde:
sed 2s/\ .*$/\>/ orig.txt > kopie.txtSollte funktionieren.

fluppi
08.06.06, 21:52
Jepp, tut es auch :)
Habs gleich in mein Skript gepackt und getestet. Einwandfrei.


Vielen Dank