2017-02-20 2 views
0

Ich möchte wie diese mehr Datei umbenennen:Wie Umbenennen mehrere Dateien numerische Reihenfolge 1, 2, oder 3 Ziffern, um 4 Ziffern im Terminal Befehl zu sein?

qwsas_1.jpg  >> 0001.jpg 
2wase_2.jpg  >> 0002.jpg 
swaq2_3.jpg  >> 0003.jpg 
qweei_14.jpg >> 0004.jpg 
dadaS_23.jpg >> 0005.jpg 
aswee_35.jpg >> 0006.jpg 

Ich verwende diesen Befehl ein:

a=1 
for i in *.jpg; do 
    new=$(printf "%04d.jpg" "$a") #04 pad to length of 4 
    mv -- "$i" "$new" 
    let a=a+1 
done 

refer

Aber Ergebnis:

qwsas_1.jpg  >> 0001.jpg 
qweei_14.jpg >> 0002.jpg 
2wase_2.jpg  >> 0003.jpg 
dadaS_23.jpg >> 0004.jpg 
swaq2_3.jpg  >> 0005.jpg 
aswee_35.jpg >> 0006.jpg 

Was soll ich mit dem tun Code?

Antwort

0

Sie können Ihre Dateien durch ihre Anzahl Teil sortieren, bevor sie durch Looping und Umbenennen von ihnen:

a=1 
while read -r filename; do 
    new=$(printf "%04d.jpg" "$a") #04 pad to length of 4 
    mv -- "$filename" "$new" 
    let a=a+1 
done < <(ls *.jpg | sort -t_ -k2n) 

Probelauf:

renaming qwsas_1.jpg 0001.jpg 
renaming 2wase_2.jpg 0002.jpg 
renaming swaq2_3.jpg 0003.jpg 
renaming qweei_14.jpg 0004.jpg 
renaming dadaS_23.jpg 0005.jpg 
renaming aswee_35.jpg 0006.jpg 
+0

Vielen Dank für Ihre Antwort. Ich habe versucht, aber es scheint ein Fehler wie folgt: Zeile 6:/dev/fd/62: Keine solche Datei oder Verzeichnis. Obwohl das umbenennen würde die Dateien noch existieren –

Verwandte Themen