Thema: Shell Script
Einzelnen Beitrag anzeigen
Ungelesen 26.05.12, 13:52   #6
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 639
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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 ...)]
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten