Hallo zusammen, ich möchte auf der Shell mit SED eine XML-Datei (local.xml) manipulieren.
Folgenden Befehl habe ich geschrieben:
sed -i '' -e "s,<host>[^<]*</host>,<host><![CDATA[$sqlhost]]></host>" local.xml
Das Ziel soll sein, dass er in der Datei die Zeichenkette <host> irgendwelche x-beliebigen Zeichen </host> findet, und dann dementsprechend die x-beliebige Zeichenkette durch <![CDATA[$sqlhost]]> ersetzt. Die Variable $localhost existiert und ist auch richtig gesetzt.
Dummerweise bekomme ich jedesmal den Fehler:
sed: 1: "s,<host>[^<]*</host>,<h ...": unescaped newline inside substitute pattern
Googlen hat mir leider nicht so Recht weitergeholfen. Ich erkenne in den "Substitute Pattern" keine neue Zeile, aber vermutlich bin ich auch gerade einfach nur doof
Vielen Dank für eure Hilfe
Problem mit SED Regex / Search / Replace
Re: Problem mit SED Regex / Search / Replace
Das dritte Kontrollzeichen fehlt, in diesem Fall ein Komma.
Beim Editieren von xml vielleicht xmlstarlet interessant?
Beim Editieren von xml vielleicht xmlstarlet interessant?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Problem mit SED Regex / Search / Replace
cool Vielen Dank, jetzt funktioniert alles
Mir ging es um eine SED / Regex Lösung da ich SED auch öfters mal für andere Dateien (nicht XML) brauche. Aber Danke für die Alternativlösung, werds im Hinterkopf behalten.
Mir ging es um eine SED / Regex Lösung da ich SED auch öfters mal für andere Dateien (nicht XML) brauche. Aber Danke für die Alternativlösung, werds im Hinterkopf behalten.