Forum Programmation.shell renommer des fichiers avec 3 chiffres

Posté par .
Tags : aucun
2
31
août
2009
Bonjour,
Je suis entrain de faire un script pour faire des archives de comics (cbz) et il me manque juste une partie ordre, dans le nom des fichiers.

#!/bin/bash
nom="POT_V1_"
mkdir $nom;
IFS=$'\n'
cpt=0;
for i in `ls *.jpg`
do
cpt=`expr $cpt + 1`;
echo "separate $i en $nom$cpt"
convert -crop 50%x100% $i temp
mv temp-0 $nom/$nom$cpt.jpg;
cpt=`expr $cpt + 1`;
mv temp-1 $nom/$nom$cpt.jpg;

done

En gros j'obtiens toto1.jpg etc, toto10.jpg et toto100.jpg.

Quelqu'un a une idée comment je pourrais obtenir des noms de fichiers avec 3 chiffres, cad modifier mon cpt pour qu'il soit sur 3 chiffres : toto_002.jpg

Merci
  • # printf

    Posté par . Évalué à 7.

    cpt3d=`printf '%03d' $cpt`
  • # printf !

    Posté par . Évalué à 7.

    $ x=5
    $ printf '%03d' $x
    005
  • # seq

    Posté par (page perso) . Évalué à 5.

    $ for numero in `seq -f '%003g' 200` ; do echo file-$numero ; done
    file-001
    file-002
    file-003
    [...]
    file-200

    Adhérer à l'April, ça vous tente ?

    • [^] # Re: seq

      Posté par . Évalué à 4.

      seq -w 200 est plus simple dans ce cas
    • [^] # Re: seq

      Posté par (page perso) . Évalué à 3.

      % for numero in {001..200}; do echo file-$numero ; done
      file-001
      file-002
      file-003
      [...]
      file-200

Suivre le flux des commentaires

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