Ich habe eine Datei, die mehrere Zeilen XML enthält. Ich möchte bestimmte Teile der Datei ersetzen. Einige Teile der Datei enthalten Anführungszeichen ( "), die ich ersetzen möchte. Ich habe versucht , zu entkommen das Anführungszeichen mit \, aber ich glaube nicht , das ist die Arbeit am Ergebnis meiner Datei basiert.
Hier ist ein Beispiel für einen meiner sed-Befehle:
sed -e "s/\"text\"/'text'/ig" file.xml > temp.tmp
Entkommen Sie auf diese Weise Anführungszeichen in einem sed-Befehl oder mache ich etwas falsch?
\"der richtige Weg, Anführungszeichen im Befehl sed zu umgehen?
". Ihr Shell-Befehl verwendet jedoch eine Zeichenfolge in doppelten Anführungszeichen und \"ist dort korrekt. Das sedProgramm sieht s/"text"/'text'/igals Argument dafür -e.
s/\"text\" /'text'/igwürde Würde er nur "text" mit dem Leerzeichen danach finden?
seddas richtige Werkzeug für den Job ist. Vielleicht möchten Sie einen XML-Parser.
"text"durch richtig aus'text'. Natürlich wird es nichts tun"othertext". Zeigen Sie einige Eingabezeilen und die entsprechende unerwünschte Ausgabe an und erklären Sie stattdessen, welche Ausgabe Sie möchten.