2009-10-31 8 views
0

J'ai donc:Convertir les noms de fichiers en entiers

01.jpg 02.jpg 3.jpg 4.jpg 05.jpg

et que vous voulez les faire tous comme ci-dessous à l'aide d'une coquille script ou une commande sur linux

1.jpg 2.jpg 3.jpg 4.jpg 5.jpg

+0

Êtes-vous susceptible d'avoir * * 06.jpg et 6.jpg, par exemple? – pavium

+0

non:) ............. – steven

Répondre

2

Si vous avez la commande rename sur votre système,

rename "s/0(\\d+\\.jpg)/\$1/" *.jpg 
1
for i in 0*.jpg; do 
    mv $i ${i:1} 
done 
1

Pour enlever tout nombre de zéros du début et éviter les collisions:

for old in 0*.jpg; do 
    new=$(echo ${old} | sed 's/^00*//') 
    if [[ ! -f ${new} ]] ;then 
     mv ${old} ${new} 
    else 
     echo "${old} conflicts with ${new}" 
    fi 
done 

Bien sûr, rename est un meilleur option si disponible. Je ne fais qu'inclure ceci pour l'exhaustivité si vous utilisez une machine UNIX qui n'a pas cet outil.

Questions connexes