On Fri, Oct 13, 2000 at 05:51:05PM +0200, Jens Puruckherr wrote:
$: cat mache #!/bin/sh cd $1 echo "----------------------------------------------" for file in * do if (test -d $file) then mache $file else sed --silent s/wohnungsmarkt-dresden/immoserver.net/ $file echo bearbeite $file fi done $:
1.) sed editiert nicht das angegeben $file direkt sondern gibt das File samt der ersetzten Stellen auf die Standardaisgabe. Du wirst also ein temporaeres File benötigen. 2.) bei --silent (wegen der portabilitaet würde man hiefuer -n schreiben) wird nix automatisch ausgegeben (siehe manual)
etwa so:
tmpfile=$HOME/tmpfile ... else echo bearbeite $file sed s/wohnungsmarkt-dresden/immoserver.net/g $file >$tmpfile cp $tmpfile $file fi ... rm $tmpfile
Das /g hinten sorgt dafuer, dass ggf. auch mehrere Ersetzungen pro Zeile gemacht werden. Das obige Skript funktioniert nur, wenn die Datei- und Verzeichnisnamen keine Leerzeichen enthalten.
Reinhard