linux-l: replace rekursiv

Steffen Solyga solyga at absinth.net
Di Apr 18 00:02:42 CEST 2000


> weiss jemand ne 'gute' methode um in einem directory in jedem (text)file einen
> string mit einen anderen zu ersetzen?
> im emacs? sed?

Als alter Perlhasser würde ich folgendes vorschlagen:

$ for i in `find . -type f`; do echo "Processing $i"; file $i | grep text > /dev/null 2>&1 && (cp -p $i /tmp/file; sed "s/alter string/neuer string/g" /tmp/file > $i; touch -r /tmp/file $i; ); done
$ rm -f /tmp/file

Sieht doch abgefahren aus, oder? Funktioniert auf meiner Linuxkiste wunderbar.
Eventuell ist der output von file zu prüfen, weiß nicht, ob alle Versionen
denselben output erzeugen.

-- 
-------------------------------------------
Steffen Solyga
mail: solyga at absinth.net
www : http://www-tet.ee.TU-Berlin.DE/solyga
-------------------------------------------



Mehr Informationen über die Mailingliste linux-l