Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/01/2009, à 17:30

Orion Elenion

Detox, renommer ses fichiers en enlevant les caractères spéciaux

Bonjour,

je viens de découvrir un petit utilitaire magique, en ligne de commande, pour tous ceux qui sont amateurs de scripting et de traitements automatisés sur un grand nombre de fichiers.

À titre d'exemple, j'ai organisé ma collection de musiques en les plaçant toutes dans le même répertoire, nommés ainsi :

Artiste__Année__Album__Piste__Titre.Extension

Ceci permet de faire facilement des recherches ou des traitements sans avoir à gérer la récursion dans les répertoires.

Sauf que toute personne ayant suffisamment scripté s'est vue un jour confrontée au problème des caractères spéciaux (é, à, ï, ...) et/ou significatifs (espace, astérisque, tiret, slash, ...) dans les noms de fichiers.

C'est là que detox intervient.

Disponible dans les dépôts Ubuntu au moins depuis Hardy (je ne suis pas allé explorer plus antérieurement), cet utilitaire permet, en une ligne de commande, de remplacer facilement, intelligemment, je dirais même magiquement, ces caractères sur un nombre quelconque de fichiers (j'en ai traité plus de 1000 en une commande, ce fut instantané).

Avec les bonnes options, on peut :
- renommer des fichiers en UTF-8 ou en ISO-8858-1, en remplaçant les caractères accentués par leur équivalent non accentué, les espaces et de nombreux caractères par des underscores, toute séquence de tirets/underscores par un seul underscore, etc.
- simuler le résultat sans renommer effectivement les fichiers (pratique pour s'assurer du bon fonctionnement avant de faire une catastrophe) ;
- transformer tous les caractères en minuscules ;
- etc.

Pour l'installer :

$ sudo apt-get install detox

ou cliquer ici.

Pour l'utiliser :

$ man detox
$ man detoxrc
$ man detox.tbl

Les fichiers de configuration :
/usr/share/detox/*.tbl (tables de traduction) ;
/etc/detoxrc (configuration générale) ;
~/.detoxrc (configuration propre à l'utilisateur).

Exemples d'utilisation :
Pour simuler le renommage de tous les fichiers dans le répertoire courant :

$ detox -n -s utf_8 *

Pour renommer tous les fichiers contenant au moins une espace dans son répertoire video :

$ detox -s utf_8 ~/video/"* *"

Pour les fonctionnalités plus précises, il sera nécessaire d'éditer le fichier detoxrc (voir le manuel). Attention notamment, par défaut il remplace toute séquence de tirets/underscores par un unique underscore (vous imaginez bien que je n'y avais pas fait attention à la simulation, en renommant mes plus de 1000 fichiers de musique contenant des doubles underscores comme séparateurs lol).

Dernière modification par Orion Elenion (Le 01/01/2009, à 17:33)


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#2 Le 01/01/2009, à 23:08

clahor

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

merci de nous faire connaitre cette commande

l'avantage de linux c qu'on peut trouver une commande pour executer une action au lieu d'utiliser un logiciel usine a gaz

l'inconvenient c que pour connaitre l'existence meme d'une commande comme celle la il faut fouiller un peu a droite a gauche (dans les forums par exemple)

la commande meriterait une place sur la wiki......

Hors ligne

#3 Le 02/01/2009, à 01:11

Orion Elenion

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Personnellement je trouve souvent mon bonheur dans Synaptic en faisant une recherche sur deux ou trois mots-clés dans les champs "titre" et "description". Quitte à essayer plusieurs logiciels différents. Après, c'est sûr qu'il faut pouvoir lire l'anglais.

Par exemple, pour trouver Detox, j'ai cherché "special characters" je crois.


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#4 Le 02/01/2009, à 02:04

roger64

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Excellent. Merci pour cette information. Je vais tester. smile

testé. La fonction -n (à blanc ou "dry run") est utile. J'ai suivi l'exemple du man sur un fichier /tmp et j'ai trouvé que le remplacement du "é" par "A_copy" n'était pas forcément un progrès. C'est fait par un Américain hein... Il faudrait savoir régler pour qu'il remplace les "é" par des "e", enfin qu'il se contente juste d'enlever les accents sans trop charcuter....:P

Si tu as préparé un fichier de configuration perso de ce genre, je suis preneur.

A creuser en rajoutant un grain de sel. Mais je confirme que ça peut aider.

Sinon, pour remplacer les doubles tirets par des tirets simples, tu peux aussi le faire avec GPRename.

Dernière modification par roger64 (Le 02/01/2009, à 02:32)

Hors ligne

#5 Le 02/01/2009, à 03:32

Orion Elenion

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

L'option -s utf_8 est là pour ça. Par défaut, c'est en latin-1 (iso-8859-1), alors qu'Ubuntu est en utf-8 par défaut. Et comme chacun l'a constaté un jour, le é de l'utf-8 interprêté en latin-1 donne é, d'où le A_copy.

RTFM. wink

Sinon, pour remplacer les doubles tirets par des tirets simples, tu peux aussi le faire avec GPRename.

Mais, je ne veux pas les remplacer. roll Et gprename dépend d'une librairie gtk2, ce qui me laisse dubitatif quand à son utilisation scriptée...

Dernière modification par Orion Elenion (Le 02/01/2009, à 03:38)


Ubuntu is an ancient african word meaning : "I can't configure Debian".

Hors ligne

#6 Le 02/01/2009, à 05:23

roger64

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Orion Elenion a écrit :

Et comme chacun l'a constaté un jour, le é de l'utf-8 interprêté en latin-1 donne é, d'où le A_copy.

absolument, c'est d'une clarté aveuglante. roll

Hors ligne

#7 Le 02/10/2009, à 09:09

Dr. Doud

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Serait-il possible d'utiliser cet utilitaire dans l'autre sens et donc de retrouver ses accentués dans des noms de fichiers "corrompus" par des é, ù, è, etc ?

Exemple :

Il est allé ça et lÃ. Où ? --> Il est allé ça et là. Où ?

Hors ligne

#8 Le 02/10/2009, à 10:51

Ras'

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Orion Elenion a écrit :

À titre d'exemple, j'ai organisé ma collection de musiques en les plaçant toutes dans le même répertoire, nommés ainsi :

Artiste__Année__Album__Piste__Titre.Extension

Ceci permet de faire facilement des recherches ou des traitements sans avoir à gérer la récursion dans les répertoires.

yikes
Mais sinon tu sais que t'as des idtag sur les fichiers, et des logiciels qui les gèrent très bien ?
Enfin merci pour la commande, c'est très utile, mais je trouve ça fou qu'on puisse "s'organiser" comme ça...


Va t'faire shampouiner par le compteur_V2 en timezone[Canada/Eastern] !
 
Les types awesome n'ont rien à prouver. À personne.
'k bye là

Hors ligne

#9 Le 09/10/2009, à 12:10

Lapogne71

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

@ Dr Doud : je viens justement de poster un script qui permet cela, grâce à l'outil convmv.

voir ici : http://forum.ubuntu-fr.org/viewtopic.php?id=347517

Hors ligne

#10 Le 09/12/2010, à 14:26

Miroslav

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

Est-il possible de revenir en arrière, de rajouter les espaces à la place des underscores?

Je travail en collaboration avec des personnes qui utilisent windows et le fait de changer des nom génère des incompatibilités avec d'autre logiciels

Merci

Hors ligne

#11 Le 09/12/2010, à 16:03

kyncani

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

rename -n 's/_/ /g' *
Enlève l'option -n si le renommage te convient.

Hors ligne

#12 Le 09/12/2010, à 16:40

Miroslav

Re : Detox, renommer ses fichiers en enlevant les caractères spéciaux

merci

Hors ligne