Il existe différentes techniques de renommage en masse selon ce qu'on souhaite faire.
Avec la commande rename, il est possible de simuler l'opération en y ajoutant l'option -n
! On voit alors s'afficher les opérations effectuées sur les fichiers concernés
Ici, comment changer tout ce qui se termine par “JPEG” par “jpg” :
rename "s/\.JPEG$/\.jpg/" *.jpeg
Explication simple :
\.
$
sert à exprimer la fin de la chaînefor file in *.JPEG; do mv -- "$file" "${file%.JPEG}.jpg" done
Remplacer :
rename "s/\monMot/monNouveauMot/" *
Retirer :
rename "s/\monMot//" *
Voici un exemple parlant (j'espère) :
rename -n 's/\(Prefix.*?\)//' *
Ici, la commande va retirer tout ce qui contient (Prefix<quelque chose>)
du nom de fichier
Le “?” sert à ne tester que la première occurence de la parenthèse fermante qui suit, et non toutes les autres
Tout en minuscules :
rename 'y/A-Z/a-z/' *
Sur des système particuliers, comme en HFS+ :
rename -f 'y/A-Z/a-z/' *
Tout en majuscules :
rename 'y/a-z/A-Z/' *
Parallèlement au s/
, le préfixe y/
permet de définir des expressions de translittération (a-z, etc…)
Convertir en minuscules :
rename 's/\.([^.]+)$/.\L$1/' *
Convertir en majuscules :
rename 's/\.([^.]+)$/.\U$1/' *
\L
permet de convertir l'expression capturée $1
en minuscules\U
permet de convertir l'expression capturée $1
en majuscules