La cita­tion du jeudi – 15

Quand l’homme naît il est souple et faible ; à sa mort il est rigide et dur.
Les plantes à leur nais­sance sont souples et fragiles. À leur mort, elles sont sèches et dures.
Ce qui est dur et fort va vers sa mort. Ce qui est souple et faible va vers la vie.

Lao Tseu

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.