Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 04/10/2009, à 15:36

Lapogne71

[Script] pour renommer les fichiers avec problèmes d'accents

J'ai écrit un petit script qui permet de renommer en masse les fichiers présentant des problèmes avec les caractères accentués.

Par exemple, vous recevez ou téléchargez une archive zip faite sur Windows. A la décompression sur Ubuntu, les caractères accentués sont mal restitués (codage différent de UTF-8). L'une des solutions est de renommer manuellement les fichiers s'ils sont peu nombreux ... l'autre est d'utiliser un script qui automatise le renommage.

Le script permet de balayer les différents codages de caractères susceptibles d'être à l'origine des noms de fichiers, et de simuler la conversion vers le codage UTF-8. Si le bon codage d'origine est trouvé (visuellement), on peut alors passer à la conversion réelle des noms de fichiers du répertoire, ou même de façon récursive.

EDIT du 10/03/2010 :
Hizoka s'est joint à moi pour traiter ce problème de noms de fichiers invalides, en proposant une variante du script qui affiche **en couleur** les caractères invalides et les caractères convertis.


Lien pour le script de Lapogne71 (le mien) : http://lapogne.free.fr/files/shell/conv … -8_0.04.sh
          Avantages : - rapide à l'exécution même si nombreux fichiers à traiter
         Inconvénients : - pas de couleurs ! smile



Lien pour le script de Hizoka : http://lapogne.free.fr/files/shell/conv … ka_0.04.sh
          Avantages : - les couleurs dans les noms de fichiers permettent de localiser rapidement les caractères à traiter
         Inconvénients : - un peu plus lent à l'exécution si nombreux fichiers à traiter


Exemples de traitements :


Mauvais codage (script Lapogne71) :                                                                                                  Bon codage (script Lapogne71) :

convmv-for-utf-8_iso-8859-1.png  convmv-for-utf-8_cp437.png




Mauvais codage (script Hizoka) :

convmv-for-utf-8-hizoka_iso-8859-1.png

Bon codage (script Hizoka) :

convmv-for-utf-8-hizoka_cp437.png



Pour les curieux ou ceux qui veulent tester sans risques, j'ai mis en ligne 2 exemples de fichiers zip à décompresser et traiter. Essayez avec l'un et l'autre script smile :
convmv-for-utf-8_test_A.zip
convmv-for-utf-8_test_B.zip


Tous commentaires, suggestions, corrections, critiques sont les bienvenus ! smile



Edit pour rappeler comment l'utiliser les scripts :

La méthode que j'utilise est toute simple :
- copier le script dans le dossier contenant les fichiers à renommer
- ouvrir un terminal et se placer dans ce dossier
- exécuter la commande

bash nom_du_script.sh

Je ne gère pas les chemins dans mon script, il faut donc le copier dans le dossier contenant les fichiers à renommer ... (ce qui évite aussi d'avoir à entrer des chemins en argument dans la ligne de commande)

Dernière modification par Lapogne71 (Le 11/03/2010, à 00:11)

Hors ligne

#2 Le 04/10/2009, à 19:06

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

je mets de coté vu que je suis souvent confronté à ce genre de chose smile

merci (je ferai un retour quand j'aurais à l'utiliser)

En ligne

#3 Le 09/10/2009, à 10:17

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Bon j'ai eu l'occasion de le tester, ca marche tres bien smile

merci à toi !

En ligne

#4 Le 09/10/2009, à 10:36

clahor

Re : [Script] pour renommer les fichiers avec problèmes d'accents

bjr il y a aussi des paquets qui font ça
unaccent (enlever les accents des noms de fichiers)
detox (enlever les caracteres indésirables des memes noms)

pour info

NB: felicitations pour ton script

Dernière modification par clahor (Le 09/10/2009, à 10:37)

Hors ligne

#5 Le 09/10/2009, à 13:06

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

@ Hizoka et clahor : merci pour votre retour !

@ clahor : il me semble que les outils unaccent et detox ont un intérêt "préventif", dans le sens où les caractères accentués sont supposés visibles et valides, et finalement convertis en caractères non accentués (par exemple tout les é è ê ë ==> e ). Au contraire, l'outil convmv , que j'utilise dans mon script, permet de réparer les noms de fichiers présentant des caractères invalides (à cause des accents).

Hors ligne

#6 Le 15/10/2009, à 14:57

Tomi la Tomate

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Bonjour bonjour,

Il a l'air très bien ce script, malheureusement, je n'arrive pas à le lancer. Il se lance seulement dans l'éditeur de texte quand je double clique dessus.

N'étant pas un pro de la commande (vraiment pas), j'ai du mal à le tester...

Dommage, ça avait l'air de bien m'aider pour mes problèmes de codage non valide.

Quelqu'un peut m'aider ?

Merci

Hors ligne

#7 Le 15/10/2009, à 15:10

nesthib

Re : [Script] pour renommer les fichiers avec problèmes d'accents

en graphique :
clic droit sur le fichier > propriétés > permissions > exécution

dans un terminal:

chmod u+x /mon/dossier/mon_fichier.sh

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#8 Le 15/10/2009, à 15:18

Tomi la Tomate

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Super merci pour la réponse rapide, et oui effectivement la permission n'était pas accordée.

Maintenant, c'est quand je lance le script, le terminal s'ouvre, puis se  ferme directement après.

Lopin compris.

Hors ligne

#9 Le 15/10/2009, à 15:21

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

@ Tomi la Tomate :
La méthode que j'utilise est toute simple :
- copier le script dans le dossier contenant les fichiers à renommer
- ouvrir un terminal et se placer dans ce dossier
- exécuter la commande

bash convmv-for-utf-8_0.03.sh

La méthode de nesthib est plus générale mais je ne gère pas les chemins dans mon script, il faut donc le copier dans le dossier contenant les fichiers à renommer ... (ce qui évite aussi d'avoir à entrer des arguments dans le ligne de commande)

Hors ligne

#10 Le 15/10/2009, à 15:36

Tomi la Tomate

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Super, ça marche nickel !

Ca m'enlève une grosse épine du pied.

Merci beaucoup pour ce script et le coup de main pour le lancer smile

Hors ligne

#11 Le 03/11/2009, à 02:54

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

cela ne marcherait-il pas également avec la commande "iconv" ?

si oui ca permettrait d'éviter de devoir installer le paquet que tu utilises pour la conversion.

En ligne

#12 Le 03/11/2009, à 09:21

takanuva

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Ça à l'air sympa mais est ce qu'il est capable de parcourir récursivement les dossiers? Parce que j'ai un répertoire où les noms sont plus ou moins bien encodés et donc ça serai bien pratique de pouvoir appliquer ce script à tous les sous-dossier!:D

Hors ligne

#13 Le 03/11/2009, à 10:21

nesthib

Re : [Script] pour renommer les fichiers avec problèmes d'accents

takanuva a écrit :

Ça à l'air sympa mais est ce qu'il est capable de parcourir récursivement les dossiers? Parce que j'ai un répertoire où les noms sont plus ou moins bien encodés et donc ça serai bien pratique de pouvoir appliquer ce script à tous les sous-dossier!:D

pour parcourir les dossiers, un petit find utilisé avec l'option exec permet de rechercher les fichiers que tu veux et d'exécuter un script/prog dessus


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4

Hors ligne

#14 Le 03/11/2009, à 11:47

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Hizoka a écrit :

cela ne marcherait-il pas également avec la commande "iconv" ?

si oui ca permettrait d'éviter de devoir installer le paquet que tu utilises pour la conversion.

Je crois que iconv agit sur le texte à l'intérieur d'un fichier, alors que le but est de convertir uniquement les noms de fichiers... quoique faire d'une pierre deux coup serait intéressant ! Il faudra que j'y pense un jour,...si quelqu'un veut participer big_smile


takanuva a écrit :

Ça à l'air sympa mais est ce qu'il est capable de parcourir récursivement les dossiers? Parce que j'ai un répertoire où les noms sont plus ou moins bien encodés et donc ça serai bien pratique de pouvoir appliquer ce script à tous les sous-dossier!:D

En effet le script peut agir de façon récursive , il suffit de taper "r" comme récursif au lieu de "o" , au moment où le script le demande, juste avant la conversion ! smile
Par contre la conversion se fera avec de même codage de caractères sur tout les fichiers/répertoires.
Si tu as plusieurs codages d'origine différents, il faudra de toute façon avoir une confirmation "visuelle" pour chacun d'eux, et donc appliquer le script aux fichiers/dossiers un par un...

Dernière modification par Lapogne71 (Le 03/11/2009, à 12:02)

Hors ligne

#15 Le 03/11/2009, à 12:44

takanuva

Re : [Script] pour renommer les fichiers avec problèmes d'accents

On ne me le demande jamais! Voila ce que l'on me dit:

 convmv-for-utf-8_0.03.sh       v0.03

 Vérifier quel codage d'origine semble correct (presser 'y' et validez si affichage en attente)

--- Hypothèse du codage : iso-8859-1 ---


 Aucun nom de fichier à convertir

 Sortie du programme ...

Hors ligne

#16 Le 03/11/2009, à 12:57

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

takanuva a écrit :

On ne me le demande jamais! Voila ce que l'on me dit:

 convmv-for-utf-8_0.03.sh       v0.03

 Vérifier quel codage d'origine semble correct (presser 'y' et validez si affichage en attente)

--- Hypothèse du codage : iso-8859-1 ---


 Aucun nom de fichier à convertir

 Sortie du programme ...

Dans ton cas le programme ne fait pratiquement rien, il se termine aussitôt. Cela veut dire que le script ne détecte aucun nom de fichiers présentant des caractères accentués :
- soit tu exécutes le script au mauvais endroit
- soit tes fichiers ont des noms sans accent

Ce qui revient au même... Peux tu me confirmer cela ?

Hors ligne

#17 Le 03/11/2009, à 17:15

bartmarley

Re : [Script] pour renommer les fichiers avec problèmes d'accents

parfait je cherchais justement quelquechose comme ça.
merci

Hors ligne

#18 Le 03/11/2009, à 17:17

takanuva

Re : [Script] pour renommer les fichiers avec problèmes d'accents

J'exécute le script dans mon repertoire /media/documents/musique

~$ ls /media/documents/musique/                   
astrid                    Dessins animés  Extraction  Pop             rock ska
ché pô                  Dessins animés   Film        Punk Français  Soundtrack
ché po                    difference.txt   Funk        Punk Français   Tango     
Classique                 Disco            Hip-Hop     Rap             ~tek      
convmv-for-utf-8_0.03.sh  Dub              Jazz        Reggae          world     
desktop.ini               Electro          nature      Rock            zik festive

Mais il y a aussi des fichiers comme 09 - Meï Teï Shö - Algeria.mp3 qui ont des problèmes.
Et j'exécute le script dans le repertoire /media/document/musique.

Hors ligne

#19 Le 03/11/2009, à 18:10

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Attention il faut que le système (gnome, ubuntu, je sais pas trop quoi au juste !) détecte les noms de fichiers comme invalides.
C'est typiquement le cas lorsque tu décompresses un zip fait sur Windows et qui contient des noms de fichiers avec accents.
Par contre ce n'est plus le cas si tu renommes manuellement un fichier : son nom devient "valide" pour le système, même s'il contient des caractères bizarres !

Je viens de mettre en ligne un fichier zip pour tester le script :
convmv-for-utf-8-fichier_test_accents.zip

Pour tester çà :
- décompresse le zip
- ouvre un terminal et place toi dans le dossier "fichier_test_accents"
- exécute le script avec la commande "bash convmv-for-utf-8_0.03.sh"
- suit les instructions (le codage d'origine pour ce fichier est cp437, comme souvent)
- à la fin du programme, avant la conversion, tu as le choix entre conversion simple (touche "o" ) ou conversion récursive (touche "r"), les 2 fonctionnent smile

Hors ligne

#20 Le 03/11/2009, à 20:45

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

après il doit être utilisable de cette façon :
- on liste d'abord les noms des fichiers
- on lui envoi le tout via un fichier (format de base ou laisser le choix)
- on sauvegarde les textes modifié dans un autre fichier
- on compare les fichiers entre eux
- on en ressort que les lignes différentes
- on propose le résultat s'il convient ou pas (autre format prédéfini ou choix)
- on renomme les fichiers avec les nouveaux noms (le 1er fichier contenant le nom du fichier, le 2e contenant le nouveau nom).

non ? t'en penses quoi ?


join
Considérez-le comme un cousin de paste mais à usage spécifique. Ce puissant outil permet de fusionner deux fichiers d'une façon significative, qui crée essentiellement une simple version de base de données relationelle.

join travaille sur deux fichiers mais récupère seulement les lignes qui possèdent un champ commun (un nombre par exemple) et écrit le résultat vers stdout. Les fichiers joints doivent être triés de la même façon sur le champ cible pour que la correspondance fonctionne correctement.

Fichier: 1.donnees

100 Chaussures
200 Bretelles
300 Cure-dents
Fichier: 2.donnees

100 $40.00
200 $1.00
300 $2.00
bash$ join 1.donnees 2.donnees
Fichier: 1.donnees 2.donnees

 100 Chaussures $40.00
 200 Bretelles $1.00
 300 Cure-dents $2.00

En ligne

#21 Le 04/11/2009, à 00:30

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Hizoka a écrit :

après il doit être utilisable de cette façon :
- on liste d'abord les noms des fichiers
- on lui envoi le tout via un fichier (format de base ou laisser le choix)
- on sauvegarde les textes modifié dans un autre fichier
- on compare les fichiers entre eux
- on en ressort que les lignes différentes
- on propose le résultat s'il convient ou pas (autre format prédéfini ou choix)
- on renomme les fichiers avec les nouveaux noms (le 1er fichier contenant le nom du fichier, le 2e contenant le nouveau nom).

non ? t'en penses quoi ?

je ne vois pas très bien ... peux tu donner un exemple, car j'ai l'impression que c'est ce qui est déjà fait ...sinon je n'ai rien compris smile

Hors ligne

#22 Le 04/11/2009, à 01:49

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

en fait je n'ai pas regardé ton script smile

c'etait juste une idée pour utiliser iconv.

euuh en fait la je test mais je pige pas tout...
- telechargement de ton zip de test
- je fais un ls, je vois les ? dans les noms des fichiers
- je fais un ls > test.txt et j'obiens ça :

01 Le Marchand de Grenouilles.txt
05 L'arrivée de François d'à côté.txt
convmv-for-utf-8_0.03.sh
Pépé-à-la-fête
Toto-a-la-fete

plus d'erreurs dans les noms... ca te le fait aussi ? si oui on pourra simplifier le systeme...

En ligne

#23 Le 04/11/2009, à 11:45

Lapogne71

Re : [Script] pour renommer les fichiers avec problèmes d'accents

ben non justement, j'obtiens toujours des caractères bizarres avec le "ls > test.txt".
Par contre si tu arrives à retrouver les bons caractères accentués avec un simple ls, il faut absolument
me dire comment tu y arrives...


=>ls
01 Le Marchand de Grenouilles.txt      convmv-for-utf-8_0.03.sh  Toto-a-la-fete
05 L'arriv?e de Fran?ois d'? c?t?.txt  P?p?-?-la-f?te

=>ls > test.txt

=>cat test.txt
01 Le Marchand de Grenouilles.txt
05 L'arriv�e de Fran�ois d'� c�t�.txt
convmv-for-utf-8_0.03.sh
P�p�-�-la-f�te
test.txt
Toto-a-la-fete

J'ai donc toujours ces caractères affreux ....

Dernière modification par Lapogne71 (Le 04/11/2009, à 11:46)

Hors ligne

#24 Le 04/11/2009, à 18:49

Nab!!daN

Re : [Script] pour renommer les fichiers avec problèmes d'accents

Salut,

les man pages du site officiel peuvent aider je pense:

http://www.j3e.de/linux/convmv/man/

D'ailleurs il y a des version plus évolué que celle que tu propose, as tu reprit le dernier script en date et traduit celui-ci en francais ?

http://www.j3e.de/linux/convmv/

C'était au cas ou.

Bye.


La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! -(Albert Einstein)-
Archlinux.

Hors ligne

#25 Le 04/11/2009, à 20:39

Hizoka

Re : [Script] pour renommer les fichiers avec problèmes d'accents

en fait cat lefichier.txt me ressort bien les fautes.

mais quand je lis le fichier avec geany, de base il m'a mis le bon formatage... c'est pour ça...

bon je pars au taf mais je me repencherais dessus smile

En ligne

Haut de page ↑