Du hast bei meinem Code die single quotes vergessen. Damit sed mit Umgebungsvariablen arbeiten kann, muss man die single quotes schließen, da ja sed sonst $var1 bekommt und nicht den Inhalt. Zudem war $var1 nur ein Beispiel ...
Aber hier die komplette Lösung, die auch in der sh laufen sollte (getestet mit der dash):
Code:
#!/bin/sh
for source_file in $1/*.$2
do
cp $source_file "`basename $source_file ".$2"`.$3"
done
exit 0
Parameter 1 ($1) muss den Pfad enthalten; Parameter 2 ($2) den gesuchten Suffix (ohne Punkt); Parameter 3 ($3) den neuen Suffix (ohne Punkt);;
Alle die Dateien werden in das aktuelle Verzeichnis kopiert.
[Hab mich jetzt für basename entschieden, da du es ja eh ins aktuelle Verzeichnis kopieren willst und man mit sed noch selbst das Verzeichnis entfernen müsste (sed ist zwar sehr flexibel und kann mit Texten so gut wie alles machen, aber wenn es schon eine fertige Lösung gibt, muss man ja das Rad nicht neu erfinden ...)]