Hi, Henne Vogelsang wrote:
Hi,
On Sunday, February 17, 2002 at 18:16:08, Harry Rüter wrote:
Henne Vogelsang wrote:
On Sunday, February 17, 2002 at 17:13:54, Harry Rüter wrote:
---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/bash for file in * do if ( echo $file | grep "\.$3$" ) &>/dev/null then sed s/$1/$2/g "$file" fi done
Mit dem rm würde ich mir nochmal stark überlegen. Ich find zwar den schalter w in der sed man page aber irgendwie geht der nicht.
Henne
Also, ich habs ohne find hingekriegt: ----------script-------------------- #!/bin/sh for file in $3 do echo -n $file sed s/$1/$2/g "$file" > "$file".tmp rm "$file" mv "$file.tmp" "$file" echo " done." done ----------script-------------------- Aufruf mit: ./script text1 text2 "Dateimaske" Würde mich aber trotzdem noch interessieren, wie es mit find gegangen wäre. Der Knackpunkt ist dem find den Parameter "*.xyz" unterzuschieben. Ich hab's jetzt in tausend Varianten probiert und es hat bisher nicht funktioniert. Also es sollte dann folgendes dastehen: find . -name '*.xyz' -exec ... Hier muß dann was mit $3 stehen ^^^ Aufruf von der shell wie oben: ./script text1 text2 "Dateimaske" Dann könnte man das evtl. auch rekursiv in den Unterverzeichnissen machen, als Workaround mach ich's eben "händisch" :-( mfg Harry