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