Forum Programmation.shell bash : renommer une liste de fichiers en NNNNN.jpg

Posté par  .
Étiquettes : aucune
0
25
avr.
2005
Bonjour,

je veux renommer une liste de fichiers en une suite de nombres :

fichiers de départ :
20041001_12454501.jpg
20041001_12455201.jpg
...
20041204_08115510.jpg

ce que je veux :
000001.jpg
000002.jpg
....
000451.jpg


Voilà où j'en suis :


SEQ="0000001"
for IMAGE in `ls *`; do
mv -i $IMAGE $SEQ.jpg
#comment incrémenter SEQ comme il faut ??
done


Pour info c'est pour graver un CD de photos JPG pour un lecteur DIVX
qui ne gère pas les noms de plus de 8 caractères, et donc si je fais
pas ca non seulement c'est dur de distinguer 2 photos mais surtout il
me les fout dans un ordre incompréhensible...

Merci d'avance !
  • # google

    Posté par  . Évalué à 1.

    google "Advanced Bash-Scripting Guide"
    • [^] # Re: google

      Posté par  . Évalué à 2.

      Si je pose une question comme ca , c'est que je n'avais pas l'envie
      ou le temps de me palucher un guide avancé sur les scripts shell, mais
      merci quand même pour ton aide.
  • # truc

    Posté par  (site web personnel) . Évalué à 2.

  • # perso...

    Posté par  . Évalué à 5.

    ...je ferais un truc de ce style:
    ZERO="00000000"
    INDEX=1
    for ... ; do
       NAME="${ZERO%${INDEX//?/?}}${INDEX}.jpg"
       mv ... ${NAME}
       let INDEX++
    done
    
    • [^] # Re: perso...

      Posté par  . Évalué à 4.

      Ou bien encore ça :
      NAME="${ZERO:${#INDEX}}${INDEX}.jpg"
  • # hop, mon ptit oneliner

    Posté par  (site web personnel) . Évalué à 4.

    SEQ="0000000";fic_size=8;i=0; for f in $(ls); do complete_size=$((fic_size-${#i})); complete=${SEQ:0:complete_size}; filename=$complete$i;echo $filename; ((i++)); done
    • [^] # Re: hop, mon ptit oneliner

      Posté par  . Évalué à 3.

      C'est hyper compliqué, t'as au moins 3 variables en trop :)

      SEQ="00000000"; i=0; for f in $(ls); do filename=${SEQ:${#i}}$i; echo $filename; ((i++)); done
  • # merci

    Posté par  . Évalué à 2.

    Merci tout le monde c'est bon, et bravo pour la rapidité !

    Ok c'est vrai que j'aurais pu faire une recherche mais
    j'étais un peu pressé et j'ai pas trouvé les bons critères...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.