Strings in mehreren Daten ersetzen

Ich sollte verteilt auf ein Dutzend Dateien jeweils an mehreren Stellen einen Pfad ändern. Warum jede Datei einzeln anfassen wenn es die Shell gibt.

Erst sehen wir uns an wo es diesen String gibt:

 grep -rn "/var/www/html/" /srv/www/public_html/ 

Bevor ich die Daten automatisiert bearbeiten lasse mache ich mir ein Backup.

 tar cvfz  /tmp/tmp.tar.gz /srv/www/public_html/ 

Nun suchen wir den alten String in allen Dateien und ersetzen ihn.

 find . -name '*.*' -exec sed -i -e 's/\/var\/www\/html\/\/srv\/www\/public_html/g' {} \;   

Die ganzen „\“ kommen durch das Escapen der „/“.