Dateien umbenennen
Stefan
- programmiertechnik
Eine Datenquelle liefert mir Daten (z.B. Bilder einer Webcam) als eine Reihe von Dateien in einem Verzeichnis in folgender Form:
datei
datei.1
datei.2
datei.3
...
datei.150
etc.
Das kann unter Umständen eine vierstellige Zahl werden. Nun brauche ich ein Programm, dass sie mir umbenennt und zwar so, wobei der Dateiname variabel sein muss:
datei -> datei.0000
datei.5 -> datei.0005
datei.789 -> datei.0789
datei.1234 bleibt unverändert.
Ich kann das zwar leicht selbst programmieren, aber ich glaube, so etwas hat schon jemand, also warum das Rad nochmal erfinden. Wo gibt es so etwas zum Download (als Bash-Skript)?
Stefan
Da gibts´n Tool namens THERename, ist einfach zu bedienen und Du kannst beliebige Dateinamen erstellen. Ich arbeite gern damit und kanns nur weiterempfehlen.
Weiß jetzt keine URL zum Download auswendig, google wird Dir weiterhelfen.
Lg,
sunny
Da gibts´n Tool namens THERename, ist einfach zu bedienen und Du kannst beliebige Dateinamen erstellen. Ich arbeite gern damit und kanns nur weiterempfehlen.
Nützt mir nichts, da ich es definitiv als Kommandozeilentool und für Linux (Stichwort Bash-Skript) brauche.
Stefan
Hallo,
Da gibts´n Tool namens THERename, ist einfach zu bedienen und Du kannst beliebige Dateinamen erstellen. Ich arbeite gern damit und kanns nur weiterempfehlen.
Nützt mir nichts, da ich es definitiv als Kommandozeilentool und für Linux (Stichwort Bash-Skript) brauche.
Ruhig bleiben ;-)
bash-2.02$ for i in ./*; do i=basename $i
; filename=echo $i | sed -e s/[0-9.]//g
; suffix=echo $i | sed -e s/[^0-9]//g
; extname=printf $filename\.%04d $suffix
; mv -v $i $extname ;done
(Bitte die Anführungszeichen beachten, das sind keine Abostrophe sondern grave Zeichen! Shift+')
so short
Christoph Zunrieden
Hallo,
bash-2.02$ for i in ./*; do i=
basename $i
; filename=echo $i | sed -e s/[0-9.]//g
; suffix=echo $i | sed -e s/[^0-9]//g
; extname=printf $filename\.%04d $suffix
; mv -v $i $extname ;done
(Bitte die Anführungszeichen beachten, das sind keine Abostrophe sondern grave Zeichen! Shift+')
Na gut, der war natürlich nur zum Verständnis, wie so etwas prinzipiell aufgebaut ist.
Einfacher wäre natürlich:
bash-2.02$ for i in *.*; do mv -v $i ${i%.*}.printf %04d ${i#\*.}
;done
so short
Christoph Zunrieden