finden und eine Zeichenfolge in einer Reihe von XML-Dateien unter Verwendung von Shell-Befehlen ersetzen
Frage
Ich habe 1000 Dateien in einem Verzeichnis. Ich bin auf einer solaris Maschine
Ich mag die Zeichenfolge "/ example / test / temp" t0 "/ Prüf- / in / progress / in allen XML-Dateien in meinem Verzeichnis ersetzen.
Alle Zeiger wird groß sein.
Danke,
Anfänger
Lösung
Wie wäre es (in einer Zeile):
find . \( -type d ! -name . -prune \) -o \( -type f -name "*.xml" -print \) |
xargs perl -i.old -p -e 's-/example/test/temp-/testing/in/progress/-g'
Andere Tipps
Mit sed (1).
In der Regel ist es sicherer, einen XSLT-Prozessor zu verwenden XML-Dateien zu massieren, aber in diesem speziellen Beispiel sind die Chancen einiger „funky“ XML-Darstellung verursacht Probleme ist ziemlich abgelegen ...
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow