GNU/Linux >> Tutoriels Linux >  >> Linux

Renommer les fichiers par lots en une numérotation séquentielle ?

J'essaie de renommer par lots un tas de fichiers dans mon shell, et même s'il y a beaucoup de matériel à ce sujet sur Internet, je n'arrive pas à trouver de solution pour mon cas spécifique.

J'ai un tas de fichiers qui ont (ce qui semble être) un "timestamp-id":

abc_128390.png
abc_138493.png
abc_159084.png
...

que je souhaite échanger contre un compteur :

abc_001.png
abc_002.png
abc_003.png
...

Mon approche (plutôt) naïve serait quelque chose comme :

mv abc_*.png abc_{001..123}.png

De plus, je n'ai pas trouvé de moyen de le faire fonctionner avec un for -boucle.

FWIW, malheureusement rename n'est pas disponible sur ce système particulier.

Tout conseil serait grandement apprécié !

Réponse acceptée :

Je ne vois pas de solution qui gère l'incrémentation du compteur de manière plus intelligente, mais cela devrait fonctionner :

i=0
for fi in abc_??????.png; do
    mv "$fi" abc_$i.png
    i=$((i+1))
done

Il devrait être sûr d'utiliser abc_*.png car il est développé avant le premier mv est toujours exécuté, mais il peut être utile d'être très précis dans le sens où vous ne voulez que des fichiers avec un horodatage à six caractères à la fin.


Linux
  1. Comment renommer des fichiers sous Linux

  2. Renommer les fichiers dans le répertoire ?

  3. Metamorphose 2 - Renommer par lots vos fichiers et dossiers sous Linux

  4. Linux renommer les fichiers en majuscules

  5. Conversion par lots de PNG en JPG sous Linux

Comment renommer des fichiers en utilisant la ligne de commande sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

8 méthodes pour renommer plusieurs fichiers à la fois sous Linux

Comment convertir par lots des fichiers PDF sous Linux

Comment renommer des fichiers dans Ubuntu 20.04

Linux renommer l'extension de plusieurs fichiers