Renommer fichiers dans l'ordre chronologique

Scandale

Membre confirmé
10 Novembre 2009
46
1
Antilles
Bonjour à tous,
J'espère que je suis dans la bonne partie du forum pour demander ça. :siffle:

J'essaye tant bien que mal de trouver une piste pour écrire un commande, ou à défaut un script, me permettant de renommer un paquet d'image JPEG dans un ordre chronologique.

Je m'explique mieux :
J'ai des images qui vont de IMGP0175.JPG à IMGP0584.JPG et je souhaite les renommer de 001.jpg à 409.jpg dans leur ordre de création de fichier. On peut également se baser sur le nom original du fichier qui respecte déjà l'ordre chronologique, mais je me dis que ça complique peut-être pour rien.

Voilà, donc si quelqu'un veut me balancer une commande, un script ou m'indiquer une piste pour trouver par moi-même sans devoir me taper toute la doc de bash.

Je suis sur Darwin 10.6 et j'ai MacPort d'installé si besoin.
 
"ls -t > tmp_file"

Crée un fichier temporaire avec les noms de tes fichiers classés dans l'ordre chronologique

"cat tmp_file" pour lire ce fichier ligne par ligne combiné avec un "for" pour boucler sur la liste des noms de fichiers.

Dans la boucle tu incrémentes un compteur pour créer le nouveau nom de ton fichier.
Puis tu exécutes un "mv" pour renommer ce fichier.

Bien sûr on ne teste ce genre de script que sur une copie de son dossier, au cas où ... :zen:
 
Mouais, enfin l'écriture de la liste dans un fichier puis la lecture de ce fichier, c'est très moyen quand même (v'la l'optim si à chaque pseudo-étape on génère un fichier)... Le pipe | est ton ami ;)
(et y'a mieux ici, un for a in ‘ls -t *.JPG‘...)

for a in `ls -t`; do echo $a; done

Tu initialises un compteur avant, tu remplaces le echo par un mv qui utilise ton compteur formatté sur 3, tu incrémentes ton compteur avant le done.
 
Merci pour vos réponses ;)