Renommage en masse sous linux : rename

Edit du 19/01/2019 : suite au contact de Cyril Bois, je rajoute également son site pour les tests de RegEx.

Il existe plusieurs méthodes “petit barbu” pour traiter des renommages de masses sous linux en ligne de commande.
Deux commandes sont citées souvent rename et mmv. Cet article porte sur le premier 🙂

rename

Voici quelques exemples ‘simples’ d’utilisation de rename

A noter que pour tester les regex de “rename” on peut utiliser les sites suivants

Le second site contient également pleins d’outils sympathiques pour les CSS, JDOM…

Dans les exemples, l’option “-n” signifie noexecute, l’option -v = mode verbeux

  • Insérer un 0 au numéro de saison d’une série:
    Exemple :
    12 Monkeys/Saison 01/12 Monkeys – 1×13 Arms of Mine – IMMERSE.mkv ⇒ 12 Monkeys/Saison 01/12 Monkeys – 01×13 Arms of Mine – IMMERSE.mkv
find . -type f -name "*.mkv" -exec rename -v 's/(.*[[:space:]]+-)[[:space:]]+([0-9]{1})(x.*\.mkv)/$1 0$2$3/' {} \;
  • Supprimer la valeur ” – Sonarr” d’un fichier quelconque

Game of Thrones – 02×01 The North Remembers – Sonarr.mkv ⇒ Game of Thrones – 02×01 The North Remembers.mkv

 rename -n -v 's/(.*) - Sonarr(.*)/$1$2/' *
rename -n -v 's/(Game of Thrones - [0-9]+)x([0-9]+) -( .*\.[a-z]{2}\.srt)/$1x$2$3/' *.srt
  • Insérer un 0 supplémentaire dans les fichiers ayants deux chiffres finaux;

Exemple:
03 – Darth Vader and the Cry of Shadows #05-05.jpg ⇒ 03 – Darth Vader and the Cry of Shadows #05-005.jpg
Cas particulier, les fichiers avec trois chiffres ne doivent pas être modifiés, par Exemple
03 – Darth Vader and the Cry of Shadows #05-105.jpg => 03 – Darth Vader and the Cry of Shadows #05-105.jpg

rename -n -v 's/(.*)-([0-9]{2})(\.jpg)/$1-0$2$3/' *.jpg
  • renommer les fichiers “* – Txx ” en ” #xx”
  • Changer rapidement les extensions des fichiers
rename 's/\.zip$/\.cbz/' *.zip