Cela vous est forcément déjà arrivé de devoir renommer une longue liste de fichiers. Pour les plus fainéant d'entre vous, vous allez cliquer sur un fichier, un par un , puis faire "F2" pour renommer. Bon, ça passe, avec 10 fichiers, mais pour certaine personne, renommer plus de 3 fichiers de cette manière c'est déjà trop! Imaginez que vous voulez renommer toutes votre bibliothèque de série légale sous une forme serie01e04.avi, vous risquez de passer un bon bout de temps pour un résultat pas garantie. Heureusement, il existe plein de logiciels graphiques gratuits comme Rename-it ou Bulk Rename pour vous aidez. Mais voilà, nous, on préfère les techniques de Jedi avec notre console Linux pour en mettre plein les yeux à nos copains.
MMV : Mass Rename of files
Comparé à d'autres outils comme rename, mmv permet de faire des choses simples sans utiliser d'expression régulière! Elle utilise la syntaxe de bash avec des étoiles (*), des points d'interrogation (?) ou encore des crochets ( [] ). Dans la plus part des cas, vous allez faire des choses simples...
C'est donc l'outil idéal.
Par exemple, imaginez que nous ayons des fichiers avec l'extension jpg que nous voulons renommer en jpeg :
file_001_loremipsum.jpg
file_002_dolor.jpg
file_003_sit.jpg
file_004_amet.jpg
file_105_randomness.jpg
On utilise alors la commande mmv avec la syntaxe mmv -n "from" "to".
Le paramètre "-n" permet d'ignorer la commande et vous affiche uniquement le résultat escompté. Effacez le, une fois satisfait pour appliquer les changements.
>mmv -n "*.jpg" "#1.jpeg"
file_001_loremipsum.jpg -> file_001_loremipsum.jpeg
file_002_dolor.jpg -> file_002_dolor.jpeg
file_003_sit.jpg -> file_003_sit.jpeg
file_004_amet.jpg -> file_004_amet.jpeg
file_105_randomness.jpg -> file_105_randomness.jpeg
Le caractère étoile(*) du from est substitué par l'indice #1. Il y a autant d'indice que d'étoile. Cela nous permet de faire des trucs marrants comme :
>mmv -n "file_*_*.jpg" "#2-file-#1.jpg"
file_001_loremipsum.jpg -> loremipsum-file-001.jpg
file_002_dolor.jpg -> dolor-file-002.jpg
file_003_sit.jpg -> sit-file-003.jpg
file_004_amet.jpg -> amet-file-004.jpg
file_105_randomness.jpg -> randomness-file-105.jpg
Majuscule / Minuscule
On peut aussi s'amuser à changer la case en rajoutant avant l'indice, un "l" (lowercase) ou "u (uppercase)".
>mmv -n "file_*_*.jpg" "#u2-file-#1.jpg"
file_001_loremipsum.jpg -> LOREMIPSUM-file-001.jpg
file_002_dolor.jpg -> DOLOR-file-002.jpg
file_003_sit.jpg -> SIT-file-003.jpg
file_004_amet.jpg -> AMET-file-004.jpg
file_105_randomness.jpg -> RANDOMNESS-file-105.jpg
Autres expressions
Vous pouvez également utiliser le caractère "?" pour designer un seul caractère et les crochets "[]" pour faire une sélection.
Imaginons que nous ayons 4 fichiers :
1.png
2.png
3.png
4.png
Et que nous voulons renommer uniquement les 3 premières fichiers. Nous utiliserons alors les crochets de cette façon :
>mmv -n '[1-3].png' 'test#1.png'
1.png -> test1.png
2.png -> test2.png
3.png -> test3.png
Autres méthodes
Pour des choses plus complexe, comme l'utilisation d'expressions régulières, il faudra se tourner vers l'outil rename qui reprend la même syntaxe que perl.
Référence
Ce site est versionné sur GitHub. Vous pouvez corriger des erreurs en vous rendant à cette adresse
Go Top