Ich versuche diese drei Zeilen zu finden:
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
und ersetzen Sie sie durch:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Wenn ich es versuche
sudo sed -i 's:<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Es findet es nicht, ich habe auch versucht, es einzufügen, aber es hat immer noch nicht funktioniert:
sudo sed -i 's:<!--\n <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />\n -->:<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:' /myfile.xml
Diese werfen keine Fehler, sie kommentieren die Zeile einfach nicht aus. Jeder Rat würde helfen, danke!
Hier ist eine Beschreibung der mehrzeiligen Befehle in SED: http://docstore.mik.ua/orelly/unix/sedawk/ch06_01.htm
Es ist ein Schmerz im Hintern. Vielleicht möchten Sie Eduardos Rat befolgen und
perl -i -p -e
stattdessen verwenden.quelle
/<\!--/
: passende Zeichenfolge:X
: Dies ist eine Bezeichnung für den Verzweigungsbefehl "b"/-->/
: passende Zeichenfolges@...@...@p
: Streifen "<! -", "->" und Druckergebnisd
: Musterraum löschen und neuen Zyklus startenN
: Wenn nicht mit / -> / übereinstimmen, fügen Sie eine Zeile hinzubX
: verzweige zu: X-Labelp
: Drucke einfach eine Zeichenfolge, die nicht mit / <! - / übereinstimmtund diese zweite Methode ist eine einfache wörtliche Ersetzung durch Kopieren und Einfügen für übliche kleine Textdateien (benötigt eine Shell-Skriptdatei)
quelle