finden und eine Zeichenfolge in einer Reihe von XML-Dateien unter Verwendung von Shell-Befehlen ersetzen

StackOverflow https://stackoverflow.com/questions/1605610

  •  05-07-2019
  •  | 
  •  

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

War es hilfreich?

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
scroll top