Hallo, Am Die, 19 Aug 2008, Christian Brabandt schrieb:
:args *.xml (alle xml-Dateien der Argumentenliste hinzufügen) :argdo :%s/foo/bar/g|upd (in jeder xml-Datei ersetze foo durch bar und speichere hinterher die Datei, falls sie geändert worden ist)
Und dann schaue ich zu, wie Vim losrattert ;)
David wird mir wahrscheinlich jetzt eine viel schnellere, ressourcenschonendere und portablere Perl-Lösung um die Ohren hauen. Die würde ich wahrscheinlich selber hinkriegen, aber bis ich soweit bin, habe ich die xml-Dateien schon 3 Mal weiterverarbeitet ;)
perl -pi.bak -e 's/foo/bar/g' *.xml Allerdings guckt das nicht, ob Original und die geändertere Version gleich sind. Läßt sich bei Bedarf beheben: for f in *.xml; do test -e "${f}.bak" && cmp "${f}" "${f}.bak" && rm "${f}.bak"; done Wenn man sowas öfter braucht kann man ein perlscript, das nach jeder Datei selber den Vergleich macht und ggfs. die überflüssige Datei löscht. HTH, -dnh -- Now the world has gone to bed, | Now I lay me down to sleep, Darkness won't engulf my head, | Try to count electric sheep, I can see by infrared, | Sweet dream wishes you can keep, How I hate the night. | How I hate the night. -- Marvin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org