Suchen und Ersetzen in Dateien unter Linux

Auch wenn statische Websites kaum mehr vorhanden sind, und meistens durch ein CMS abgelöst wurden, stößt man hin und wieder doch auf so ein „veraltetes“ System. Sollen nun in allen Dateien Änderungen vorgenommen werden, ist das meist mit großem Aufwand verbunden, da jede Datei geöffnet, geändert und gespeichert werden muss.
Zum Glück haben wir in unserem Linux-System ein sehr mächtiges Tool namens sed. sed steht für Stream EDitor und ist ein Programm, mit dem Texte auf Kommandozeilen-Ebene geändert werden können.

Hier der Aufruf von sed:

sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' /pfad/zur/datei

Da wir aber, wie oben schon genannt, die Änderung nicht nur in einer Datei vornehmen wollen, sondern in mehreren, kombinieren wir sed mit find:

$ find /pfad/zu/dateien -type f -exec sed -i 's/SUCHMUSTER/ERSETZUNGSTEXT/g' {} \;

Zu beachten ist, das reguläre Ausdrücke verwendet werden und somit die entsprechenden Sonderzeichen mit einem Backslash zu maskieren sind.

Welche nützlichen findsed-Kombinationen werden den von euch verwendet?

 

Andreas Becker

 

3 Gedanken zu „Suchen und Ersetzen in Dateien unter Linux

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.