#1 Le 04/10/2009, à 14: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.
EDIT du 08/01/2024 :
Après de nombreuses années, je reviens sur mon script original et propose une nouvelle version v0.05 prenant en compte les différences d'affichage de convmv entre 2010 et 2024
En effet même si la v0.04 détectait un certain nombre de fichiers à convertir, rien n'était affiché en retour.
J'espère que je n'ai pas tout cassé coté utilisation sur Ubuntu, car je suis sur Manjaro depuis 2015 .... Je sais .. Sacrilège !!
N'hésitez pas à me dire si la v0.05 est OK pour vous. Merci. Dernière chose, les fichiers test A et B ci-dessous ne semblent plus être détectés comme à convertir... si quelqu'un à un bon exemple ?...
Lien pour le script de Lapogne71 (le mien) : http://lapogne.free.fr/files/shell/conv … -8_0.05.sh
Avantages : - rapide à l'exécution même si nombreux fichiers à traiter
Inconvénients : - pas de couleurs !
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) :
Mauvais codage (script Hizoka) :
Bon codage (script Hizoka) :
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 :
convmv-for-utf-8_test_A.zip
convmv-for-utf-8_test_B.zip
Tous commentaires, suggestions, corrections, critiques sont les bienvenus !
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 08/01/2024, à 21:21)
Hors ligne
#2 Le 04/10/2009, à 18: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
merci (je ferai un retour quand j'aurais à l'utiliser)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 09/10/2009, à 09: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
merci à toi !
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#4 Le 09/10/2009, à 09: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, à 09:37)
Hors ligne
#5 Le 09/10/2009, à 12: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, à 13: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, à 14: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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#8 Le 15/10/2009, à 14: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, à 14: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, à 14: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
Hors ligne
#11 Le 03/11/2009, à 01: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.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#12 Le 03/11/2009, à 08: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, à 09:21
- nesthib
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
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#14 Le 03/11/2009, à 10:47
- Lapogne71
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.
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
Ç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 !
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, à 11:02)
Hors ligne
#15 Le 03/11/2009, à 11: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, à 11:57
- Lapogne71
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 ...
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, à 16: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, à 16: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, à 17: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
Hors ligne
#20 Le 03/11/2009, à 19: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
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#21 Le 03/11/2009, à 23:30
- Lapogne71
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 ?
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
Hors ligne
#22 Le 04/11/2009, à 00:49
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
en fait je n'ai pas regardé ton script
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...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#23 Le 04/11/2009, à 10: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, à 10:46)
Hors ligne
#24 Le 04/11/2009, à 17: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, à 19: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
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne