Linux – Inhalt in vielen Dateien suchen / ersetzen

Manchmal hat man die Themenstellung, das man in vielen Textdateien einen bestimmten Text suchen und ersetzen muss. Manuell ist das natürlich viel zu viel Aufwand, aber unter Linux geht das zum Glück recht einfach.

Soll das ganze in nur einer einzelnen Datei gemacht werden, hilft dieser Befehl weiter:

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

Sollen alle Dateien in einem Verzeichnis entsprechend bearbeitet werden, dann hilft diese Kombination aus find und sed weiter:

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

Ein Beispiel aus der Praxis währe dann zum Beispiel:

find /pfad/zu/dateien -type f name „*.html“ -exec sed -i ’s/iso-8859-1/UTF-8/g‘ {} \;