Ich habe eine Datei mit einer langen einzelnen Zeile zwischen XML-Tags, ich möchte den Inhalt zwischen den Tags mit sed ersetzen.Ersetze mehrzeilige Zeichenfolge zwischen zwei Mustern mit sed
1300_character_long_string_here
Die Probleme ich habe, ist, dass trotz nicht sed ersetzt, dass ich meine Regex wissen richtig auswählen. Das heißt, selbst wenn ich in der Lage bin, richtig zu wählen und zu ersetzen, weiß ich nicht, wie man die Ersetzungszeichenfolge (die ungefähr so lang ist) aus einer Datei zieht und sie platziert.
Hier ist einer meiner erfolgreichen aktuellen Versuche der Befehl:
sed 's/\<Tag\>(.*)\<\/Tag\>/REPLACE/g' test.txt> out.txt
Obwohl dies nicht, dass ich sehen kann, funktioniert das ersetzt wird, wenn ich versuchen, nur den ersten Tag zu ersetzen.
Ich hätte am Anfang erwähnen sollen, dass dies ein AIX-System ist, kein GNU-System.
Haben Sie versucht 's # \ (. *) \ <\/Tag\> # REPLACE # g''? –
Beta
Suche nach 'Ersetze mehrzeilige Zeichenfolge [sed]' gibt 14 Q/As zurück. Hast du durch diese Antworten geschaut? Sie werden mit ziemlicher Sicherheit einen guten Rat finden. Viel Glück. – shellter
Reguläre Ausdrücke sind nicht geeignet, XML-Dokumente zu ändern – hek2mgl