Hi Henne, Henne Vogelsang wrote:
Hi,
On Sunday, February 17, 2002 at 17:13:54, Harry Rüter wrote:
ich versuche schon seit zwei Stunden "find" zu bezwingen, kriegs aber irgendwie nicht hin.
Geplant ist folgendes :
Es existiert ein Verzeichnis mit mehreren Dateien.
Jede Datei mit einer bestimmten Endung (zb html) soll mit sed "behandelt" werden.
sed soll eine Textersetzung machen und die Ausgabe auf eine temporäre Datei umleiten.
Nachdem sed fertig ist, wird die ursprüngliche Datei gelöscht, die temporäre Datei erhält den Namen der ursprünglichen Datei.
Die sed-Sequenz im Script sähe folgendermaßen aus :
---script----
#!/bin/sh
txt=s/$1/$2/g
sed "$txt" $datei > $datei.tmp rm $datei mv $datei.tmp datei
---script-----
Die nicht funktionierende find-Sequenz :
find . -name `$3` -exec <- hier soll die obige Sequenz ausgeführt werden
Aufruf wäre dann zb :
./script text1 text2 "*.html"
warum find?
Das funzt nur, wenn die Dateien keine Leerzeichen enthalten, tun sie aber (schlechtes deutsch,naja ich laß es mir mal durchgehen :o) ) Hatte ich vergessen zu erwähnen, sonst wäre ich sicher ohne das find weitergekommen.
#!/bin/sh
for i in $3; do sed s/$1/$2/g w $i > $i.tmp rm $i mv $i.tmp $i done
Henne
mfg Harry