Ich habe ein Verzeichnis voller XML-Dateien, die so aussehen, für die ich den Wert der „Offset“-Elementnummer von 1 in eine andere Zahl ändern möchte
$ cat my.xml
<offset xmlns="">1</offset>
Ich habe verschiedene Kombinationen dieses sed-Befehls geschrieben, aber nichts, was ich ausprobiert habe, läuft ohne Fehler. Ich bin mir ziemlich sicher, dass ich einige der Zeichen maskieren muss, aber diejenigen, die ich ausprobiert habe, enden immer mit Fehlern („unerwartetes Token“, „unbekannte Option“ usw.). Ich habe es auch ohne das Flag -e versucht, da es wirklich kein Ausdruck ist.
sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml
Jede Hilfe wäre willkommen.
Akzeptierte Antwort:
Probieren Sie es aus,
$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
<offset xmlns="">99</offset>
Verwenden Sie ein anderes sed-Trennzeichen, wenn die Eingabe Schrägstriche enthält.