Vous rentrez de voyage, des souvenirs et des images plein les mirettes et
votre appareil photo, et vous vous apprêtez à transférer toutes les photos vers
votre PC puis le site web familial. Où vous avez par exemple installé
l'excellent logiciel open source PHPWebGallery (voir en
http://phpwebgallery.net/ - il
faudra que j'en fasse un billet à part entière!).
Tout va bien pour transférer les photos de l'appareil (ou plutôt de sa carte
mémoire) vers le PC. Selon le cas, les photos peuvent même être renommées
automatiquement, mais parfois pas. Quand elles sont renommées automatiquement,
souvent un espace est mis devant le numéro de la photo, qui s'appelle ainsi
quelque chose comme
'Tante-Jeannine-plage 0056.jpg'
Vous chargez tout ça en ftp (Filezilla, open source, encore
un billet que je devrai rédiger! ou encore CuteFTP,
commercial, un autre billet!) vers votre serveur, vous activez PHPWebGallery et
là, patatras! le programme vous signale que les fichiers de vos photos ont un
"nom illégal"... tout ça à cause de ce fameux espace...
Autres exemples du même problème:
- Vous chargez les photos non depuis votre appareil avec son programme dédié,
qui vous permet d'appeler les photos
'Tante-Jeannine-plage 0056.jpg', mais directement depuis la carte
mémoire. Et du coup les fichiers photos s'appellent
'IMG 0056.jpg'. Ce qui ne rendra guère facile, dans 3 mois, de
savoir à quelle occasion ces photos ont été prises.
- Vous téléchargez (légalement, hein!) les différentes pistes d'un CD, mais
les noms des morceaux ne correspondent pas à la syntaxe que vous utilisez
habituellement, par exemple le nom comporte album, auteur, nom du morceau alors
que toute votre bibliothèque est organisée avec des noms de morceau placés au
bon endroit dans un dossier adéquat.
Bref, vous avez d'une dizaine à quelques centaines de photos à renommer
intelligemment!
Au début, j'ai pas mal galéré. Pour une dizaine de photos ou de morceaux, le
plus simple était bien sûr de renommer les fichiers à la main. Dans certains
cas, un usage astucieux de la "boîte noire" du DOS pouvait aider... mais
parfois pas.
Jusqu'à ce que je trouve l'arme fatale, un logiciel pour renommer en masse
et intelligemment les fichiers: BRU Bulk Rename
Utility que l'on trouve en http://www.bulkrenameutility.co.uk/Main_Intro.php.
On l'installe, mais quand on le lance... horreur, l'écran se remplit de tas
d'options, et les textes en Anglais ont de quoi décourager le plus anglophones
des francophones... Heureusement, deux fenêtres permettent de visualiser les
noms "avant" et "après" la transformation que l'on s'apprête à faire, et l'on
peut donc tâtonner sans danger avant de lancer l'opération (cela ne vous
empêche pas de le faire sur un premier ensemble de quelques fichiers seulement,
dont à tout hasard vous avez gardé une copie dans un coin!).
Pour vous aider: une zone essentielle, celle marquée
RegEx(1). Elle s'utilise avec des Expressions
Régulières, c'est-à-dire une façon très puissante -mais très complexe!- de
trouver des noms de fichiers et leur remplacement. Si vous ne connaissez pas...
ce n'est pas le moment d'apprendre ce sujet ardu!
Voici quand même un truc pour remplacer les espaces par des
'-':
- Vous désélectionnez toutes les cases sauf RegEx
- Dans la fenêtre de gauche des fichiers, vous sélectionnez les fichiers que
vous souhaitez renommer.
- Vous tapez dans la case Match la chaîne "([^ ]*)
(.*)" (sans les guillemets)(cela fait: parenthèse gauche, crochet
gauche, accent circonflexe [et il vous faudra taper un espace pour que l'accent
s'affiche], un espace, un crochet droit, une étoile, une parenthèse droite, un
espace, une parenthèse gauche, un point, une étoile, une parenthèse gauche,
ouf!)
- Vous tapez dans la case Replace la chaîne "\1-\2"
(toujours sans les guillemets), et, normalement, vous devriez voir
dans la fenêtre de droite des fichiers les noms modifiés, avec l'un des
espaces remplacé par le signe -
- Si ce début vous convient, cliquez sur le bouton Rename en
bas à droite. Vérifiez que tout va bien (sinon, bouton
Revert). Et il ne vous reste plus qu'à cliquer plusieurs fois
sur ce bouton Rename tant que restent des espaces dans les noms de
fichiers.
C'est largement suffisant pour la plupart des utilisations.
Autres exemples:
- Supprimer la chaîne Album3 dans le nom des fichiers:
Match "(.*)Album3(.*)" et "\1\2"
dans Replace.
- Supprimer la chaîne [Album3]: c'est presque pareil, sauf que les caractères
[ et ] sont spéciaux, alors on ne peut pas les écrire autrement que précédés de
\ (pas simple... mais c'est comme ça!). Du coup Match
"(.*)\[Album3\](.*)" toujours pour "\1\2"
dans Replace.
- A titre de curiosité, et sans appuyer sur Rename, dans l'un des
cas ci-dessus mettez donc dans Replace "\2\1": cela
pourrait vous être utile dans certains cas!
Sauf si vous êtes informaticien(ne), inutile de chercher à tout comprendre
dans ces Expressions Régulières!