Wie Paulus sagte, Sie wollen zuerst die Dateien, die Sie bearbeiten möchten, finden und dann bearbeiten. Eine Alternative Fund zu verwenden ist GNU grep zu verwenden (die Standardeinstellung auf Ubuntu), zB:
grep -r -l from . | xargs -0 -n 1 sed -i -e 's/from/to/g'
Sie können auch ack-grep verwenden (sudo apt-get ack-grep installieren oder http://petdance.com/ack/ besuchen), als auch, wenn Sie wissen, dass Sie nur einen bestimmten Dateityp wünschen und Dinge in Versionskontrollverzeichnissen ignorieren möchten. zB wenn Sie Textdateien wollen,
ack -l --print0 --text from | xargs -0 -n 1 sed -i -e 's/from/to/g'
# `from` here is an arbitrary commonly occurring keyword
Eine Alternative zu sed verwendet, ist Perl zu verwenden, die mehrere Dateien pro Befehl verarbeiten kann, zB
grep -r -l from . | xargs perl -pi.bak -e 's/from/to/g'
Hier Perl erzählt bearbeiten in platzieren Sie eine .bak-Datei zuerst.
Sie können beliebige der linken Seiten des Rohrs mit den rechten Seiten kombinieren, je nach Vorliebe.
Nur um diesen Link hier zu verlassen: http://StackOverflow.com/Questions/102083/whats-the-best-tool-find-and-replace-regular-expressions-over-multiple-files –