PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateien von 1bisn durchnummerieren



scar
14-07-2004, 14:42
Hi Leutz,
wollte mir nen kleines shell script basteln das mir alle datein *.jpg in 01.jpg 02.jpg 03.jpg usw umbenennt. Hoffe ihr könnt mir helfen.
Scar

fork
14-07-2004, 16:43
#!/bin/bash
i=0
for datei in *.jpg *.jpeg
mv $datei $(printf "%03d" $i).jpg
((i++))
done

scar
14-07-2004, 18:27
Vielen Dank!
Habe das noch nen bissel angepasst, hatte ohne das fehlende do net gefunzt.
Wofür brauchst du das hier? printf "%03d"
Habe das rausgelassen weil ich das "%03d" nicht verstanden habe.
Funzt jetzt ganz einfach mit mv $datei $i.jpg.
Scar

fork
14-07-2004, 20:11
Das sorgt dafuer das die Zahl immer dreistellig angegeben wird, aufgefuellt nach vorne mit führenden Nullen, das sorgt für die richtig sortierte Anzeige z. B. im Dateibrowser. Statt der falschen Anzeige:

1
10
11
12
13
14
15
16
17
18
19
2
20
...

diese richtige
001
002
003
...

Noch eine kleine Verbesserung damit keine Dateien ueberschrieben werden, wenn das Programm z. B. mehrmals im gleichen Verzeichnis aufgerufen wird.


#!/bin/bash
i=0
for datei in *.jpg
do
while [ -f $(printf "%03d" $i).jpg ]
do
((i++))
done
mv $datei $(printf "%03d" $i).jpg
done

scar
15-07-2004, 06:22
Ah cool danke.
Das is ja ziemlich praktisch.
Werd ich gleich mal testen.
Scar

Claudine
15-07-2004, 16:26
#!/bin/bash
i=0
for datei in *.jpg
do
while [ -f $(printf "%03d" $i).jpg ]
do
((i++))
done
mv $datei $(printf "%03d" $i).jpg
done

Nettes Script.:D
Leider funktioniert es nicht, wenn im Dateinamen (Windows like) Sonderzeichen auftreten.

Also alle Zeichen welche die Shell expandiert + Space usw..