Archives mensuelles : avril 2010

Le renom­mage de masse en console

Il m’ar­rive assez souvent d’avoir un paquet de fichiers dont le nom n’est pas comme je voudrais : présence d’es­pace ou l’ex­ten­sion en majus­cule.

Comme je suis assez psycho-rigide et que j’aime que mes fichiers aient tous un nom unifor­misé, j’uti­lise souvent des logi­ciels permet­tant le mass rena­ming, c’est à dire que tous les noms sont modi­fiés en une fois.

Deux de ces logi­ciels ont ma préfé­rence : Thunar, parce que c’est inté­gré dans le gestion­naire de fichiers et que c’est bien pratique, et Meta­mor­phose parce qu’il est très complet (possi­bi­lité de renom­mer d’après les tags exifs des photos par exemple) et qu’il est dispo­nible en paquet debian bien que non dans les dépôts (je suis une feignasse qui n’aime pas compi­ler des logi­ciels, si ce n’est en dernier recours).

Ces deux logi­ciels sont très bien mais comme j’uti­lise en ce moment un window mana­ger dont un des buts est de se passer d’in­ter­face graphique (Xmonad, pour ne pas le nommer), je cher­chais un logi­ciel en ligne de commande pour faire ce genre de chose.

Et là, magie ! Je viens de décou­vrir que la commande Perl rename est dispo­nible toute seule dans le shell.

Du coup, à moi les expres­sions régu­lières et un résul­tat super rapide en ligne de commande !

Le fonc­tion­ne­ment est très simple. Par exemple, pour rempla­cer tous les espaces par des unders­core dans les noms de mes fichiers .tex (ce n’est qu’un exemple : je n’ai évidem­ment aucun espace dans mes noms de fichiers) :

rename ‘s/ /_/g’ *.tex

Vous voyez, c’est tout bête : une regexp et un(e?) wild­card pour indiquer quels fichiers trai­ter (vous pouvez aussi donner une liste de fichiers, ou rien du tout pour entrer les noms des fichiers en mode inter­ac­tif). Pour plus de détails, comme d’hab : lisez le man !

Je vous parle­rai bien­tôt d’autres outils en ligne de commande pour en rempla­cer d’autres en inter­face graphique.

Me soutenir sur Tipeee Me soutenir sur Liberapay