#51 Le 20/11/2009, à 09:51
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
tu peux tester également avec mon script (message 45).
comme ça tu pourra faire un retour (il prend le recursif aussi)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#52 Le 20/11/2009, à 10:01
- Lapogne71
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Ok, alors j'avoue ne pas avoir eu le courage de tout lire... Mais...
3/ J'ai un soucis : ca fait des erreurs :
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset),
Alors comme je ne suis pas un crack de PERL, je ne sait pas quoi faire...
Edit :
Il semblerait qu'un "banal" export LC_ALL="fr_FR.UTF8" ait suffit a faire disparaitre le message d'erreur... En espérant maintenant que le script qui ne trouve aucun fichier mal codé ne se trompe pas... Je lance la copie, résultat dans 22h pour savoir si le script aurait oublié des fichiers mal codés....
Concernant les erreurs de Perl, c'est certainement comme tu le mentionnes un problème de "locale" : chez moi la commande "locale" (à taper dans un terminal) me retourne que des valeurs = "fr_FR.UTF-8" , sauf LC_ALL qui est vide.
Que utilises l'un ou l'autre script, en récursif, veilles bien à ce que le résultat affiché soit cohérent, c'est à dire que tous les caractères accentués (dans l'affichage de la simulation) soient restitués. Je pense dans tout les cas qu'il faut éviter d'appliquer le programme récursivement sur des dossiers/fichiers provenant de différentes sources (windows, mac, zip , ...)
Exemples : 1) tu récupères sur ubuntu un zip contenant toute une partition windows et tu la décompresses
==> tu peux faire une conversion récursive
2) tu as sur ubuntu un dossier "download" qui accueille tout tes téléchargements (du web, de ton email, de tes vieux CDR archivés...)
==> pas de conversion récursive !!! il risque d'y avoir plusieurs encodages de caractères en jeu !
Hors ligne
#53 Le 20/11/2009, à 10:26
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
en effet, dans le 1er cas, je pense que mon script est plus pratique, dans le 2 eme c'est plutot le tien
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#54 Le 27/01/2010, à 07:10
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
bon bah j'ai mixé les 2 scripts...
cela utilise convmv mais affiche les différences :
#!/bin/bash
### Variables ###
VERSION="v0.04"
# Couleurs du texte affiché dans le shell
FUSHIA="\033[1;35m"
NOIR="\033[1;0m"
BLEU="\033[1;34m"
VERT="\033[1;32m"
ROUGE="\033[1;31m"
# Liste des encodages les plus courants
CODES_LIST="iso-8859-1 iso-8859-2 iso-8859-3 iso-8859-4 iso-8859-5 iso-8859-6 iso-8859-7 iso-8859-8 iso-8859-9 iso-8859-10 iso-8859-11 iso-8859-13 iso-8859-14 iso-8859-15 iso-8859-16 cp437 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp932 cp936 cp949 cp950 cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258"
### Intro ###
echo -e "
----------------------------------------------------------
${BLEU}Ce script permet de lancer en boucle l'utilitaire convmv qui
permet de convertir les noms de fichiers codés en autre chose
que UTF-8 vers UTF-8. Relancer le script avec l'argument
ALLCODES si jamais aucun résultat n'a été trouvé.
${FUSHIA}Version ${VERSION}${NOIR}
----------------------------------------------------------"
# Vérification de l'existence de convmv
if [[ -z $(dpkg -l | egrep "^ii convmv") ]]
then
echo -e "\n${ROUGE}Le logiciel convmv n'est pas installé, il est nécessaire à ce script, faut-il l'installer ?${NOIR}"
# Propose l'installation direct du logiciel
read -p "[O]ui [N]on" confirmation_installation
# Verifie le choix de l'installation du logiciel
if [[ ${confirmation_installation} == [OoYy]* ]]
then
sudo apt-get -y --force-yes install convmv
else
exit
fi
fi
# Pour boucler sur tous les codepages supportés par convmv, il faut mettre ALLCODES en argument
if [[ "${1}" = "ALLCODES" ]]
then
# Affecte tous les codages connus de convmv à la variable CODES_LIST
CODES_LIST=$(convmv --list | tr '\n' ' ')
fi
# Demande de l'utilisation de la récursivité
echo
read -p "Voulez-vous agir de façon recursive (modification des sous dossiers) ? [O]ui [N]on [E]xit : " RECURSIVITE
if [[ ${RECURSIVITE} == [Ee]* ]]
then
echo -e "\n${ROUGE}Arret du script.${NOIR}\n"
exit
elif [[ ${RECURSIVITE} == [Oo]* ]]
then
OPTION_R="-r"
fi
### Boucle principale ###
for CODAGE in ${CODES_LIST}
do
echo -e "\n${BLEU}Hypothèse du codage : ${FUSHIA}${CODAGE}${NOIR}"
# Recher des fichiers n'etant pas en UTF-8
LISTE_FICHIER=$(convmv -f ${CODAGE} -t utf-8 ${OPTION_R} * 2>&1 | egrep "^mv ")
# Vérifie qu'il y ait bien des fichiers à renommer
if [[ -z ${LISTE_FICHIER} ]]
then
echo -e "\n${ROUGE}Aucun nom de fichier à convertir.${NOIR}\n"
exit
else
# Nombre de fichier à renommer
NOMBRE_FICHIERS=$(echo "${LISTE_FICHIER}" | wc -l)
echo -e "\n${FUSHIA}${NOMBRE_FICHIERS}${NOIR} fichiers à convertir."
fi
for ((i=1; i<=${NOMBRE_FICHIERS}; i++))
do
LIGNE=$(sed -n ${i}p <<< "${LISTE_FICHIER}")
# Récupération du nom corrompu
ANCIEN_NOM=$(cut -f2 -d '"' <<< "${LIGNE}")
# Récupération du nom corrigé
NOUVEAU_NOM=$(cut -f4 -d '"' <<< "${LIGNE}")
echo -n -e "\n${VERT}Convertion de ${NOIR}"
for (( x=0 ; x <= ${#ANCIEN_NOM} ; x++ ))
do
LETTRE_ORIGINALE=${ANCIEN_NOM:${x}:1}
LETTRE_CORRIGEE=${NOUVEAU_NOM:${x}:1}
# Comparaison des caracteres entre eux
if [[ "${LETTRE_ORIGINALE}" == "${LETTRE_CORRIGEE}" ]]
then
echo -n -e "${LETTRE_ORIGINALE}"
else
echo -n -e "${BLEU}${LETTRE_ORIGINALE}${NOIR}"
fi
done
echo -n -e "${VERT} en ${NOIR}"
for (( x=0 ; x <= ${#ANCIEN_NOM} ; x++ ))
do
LETTRE_ORIGINALE=${ANCIEN_NOM:${x}:1}
LETTRE_CORRIGEE=${NOUVEAU_NOM:${x}:1}
# Comparaison des caracteres entre eux
if [[ "${LETTRE_ORIGINALE}" == "${LETTRE_CORRIGEE}" ]]
then
echo -n -e "${LETTRE_CORRIGEE}"
else
echo -n -e "${FUSHIA}${LETTRE_CORRIGEE}${NOIR}"
fi
done
done
# Demande de confirmation du codage à utiliser
echo -e "\n${FUSHIA}${NOMBRE_FICHIERS}${NOIR} fichiers à convertir."
read -p "Ce codage est-il le bon ? [O]ui [N]on [E]xit : " BON_CODAGE
if [[ ${BON_CODAGE} == [Ee]* ]]
then
echo -e "\n${ROUGE}Arret du script.${NOIR}\n"
exit
elif [[ ${BON_CODAGE} == [OoYy]* ]]
then
convmv -f ${CODAGE} -t utf-8 ${OPTION_R} * --notest &>/dev/null
# Vérification de l'abscence de fichier corrompu
if [[ -z $(convmv -f ${CODAGE} -t utf-8 ${OPTION_R} * 2>&1 | egrep "^mv ") ]]
then
echo -e "\n${BLEU}Tous les fichiers ont été renommés.${NOIR}\n"
exit
else
echo -e "\n${ROUGE}Tous les fichiers n'ont pas été renommés.${NOIR}\n"
exit
fi
fi
# Mise au propre du terminal
clear
done
y a une certaine différence de temps entre avec et sans les couleurs de différences mais avec un test de 700 fichiers à modifier, l'affichage à durer 30sec...
Dernière modification par Hizoka (Le 28/01/2010, à 08:32)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#55 Le 27/01/2010, à 19:37
- Lapogne71
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Tu as du y passer du temps !
Il faudrait juste apporter une correction à la ligne
if [[ -z $(dpkg -l | egrep "^ii dialog") ]]
et remplacer dialog par convmv (même si je suis pas trop fan des "sudo" dans un script, un plaisantin pourrait inclure des "sudo rm" bien cachés dans le script ... )
Ensuite il y a un bug mais çà vient directement de convmv : au moment où tu affiches les différences en couleurs, lorsque 2 dossiers imbriqués ont des caractères invalides, convmv ne propose la correction que sur le 2eme dossier.
Merci d'avoir relevé le défi d'afficher les couleurs, c'est beaucoup plus lisible !
En tout cas félicitations, çà märche sûpèr bîën !
Hors ligne
#56 Le 28/01/2010, à 08:33
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
merci pour la faute,
pour le bug, je l'avais remarqué mais c'est pas franchement gênant
après quelques test, il en ressort que convmv est bien plus pratique.
voilou, ce fut un plaisir
On peut peut-être créer une page sur la doc ?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#57 Le 28/01/2010, à 19:20
- twocats
Re : [Script] pour renommer les fichiers avec problèmes d'accents
À
if [[ -z $(dpkg -l | egrep "^ii convmv") ]]
then
préfères :
if ! type -p convmv >/dev/null 2>&1
then
plus court et plus portable.
La réponse est 42
Hors ligne
#58 Le 10/03/2010, à 21:46
- Matthieu20
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Merci beaucoup Lapogne71 et hizoka pour la création de ces 2 scripts très utile.
Programmez en ActionScript simplement et avec efficacité : ActionScript-Facile.com
Hors ligne
#59 Le 10/03/2010, à 23:09
- Lapogne71
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Merci beaucoup Lapogne71 et hizoka pour la création de ces 2 scripts très utile.
Je viens de mettre à jour le post d'origine afin de prendre en compte la dernière version du script d'hizoka et les captures d'écran correspondantes.
Hors ligne
#60 Le 10/05/2010, à 16:35
- FreelY
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Salut
Merci à vous deux pour ces super scripts bien pratique!
Hizoka il n'y a pas de comparaison avant de d'effectuer les modifications je trouve ça bien dommage/dangereux.
Et c'est pas une critique mais il est vraiment accès pour les unbuteros (je sais c'est un forum ubuntu...).
line 32: dpkg : commande introuvable
Le logiciel convmv n'est pas installé, il est nécessaire à ce script, faut-il l'installer ?
Non non c'est déjà fait :p
J'adopte donc celui de Lapogne71 mais petite question:
Comment faire pour avoir ceci (afin de vérifier plus simplement les changements car j'ai "énormément" de fichiers à convertir).
Nom du fichier original
...
Nom du fichier converti
...
Nom du fichier original
...
Nom du fichier converti
...
ect ect
Codage trouvé ?
Et pas cela:
Noms de fichiers originaux codés
... liste de tout les fichiers originaux
Noms de fichiers convertis
... liste de tout les fichiers convertis
Codage trouvé ?
D'avance merci
Dernière modification par FreelY (Le 11/05/2010, à 05:39)
NON AUX RACKETiciels!
[ ARCH ] [ Clavier BÉPO ]
Hors ligne
#61 Le 10/05/2010, à 18:40
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
line 32: dpkg : commande introuvable
tu fais comment pour que ce soit portable ?
Hizoka il n'y a pas de comparaison avant de d'effectuer les modifications je trouve ça bien dommage/dangereux.
Bah de memoire si, il te montre les differences en mettant de la couleur sur les differences...
je peux toujours me repencher dessus cette semaine.
pour ta demande sur le script de Lapogne71, ça va faire pas mal de modif je pense... l'intérêt c'est juste de regarder la liste de résultat pour vérifier que c'est bien le bon encodage.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#62 Le 10/05/2010, à 20:33
- Lapogne71
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Bah c'est bizarre, depuis l'upgrade vers la 10.04 les scripts (et convmv tout seul aussi) ne fonctionnent plus, ils ne trouvent rien à convertir, comme si les noms de fichiers étaient forcés en UTF-8 mais en ayant gardé les caractères invalides ... Du coup pour l'instant je peux pas essayer les modifs suggérées par FreelY ...
Hors ligne
#63 Le 11/05/2010, à 00:09
- FreelY
Re : [Script] pour renommer les fichiers avec problèmes d'accents
tu fais comment pour que ce soit portable ?
Portable c.a.d. du code en plus dans le script pour que ce soit universel et qu'il s'installe sur toute les distributions?
Désolé je ne connais quasiment rien en scripts...
.
Là j'ai juste changé la partie texte du script à Lapogne71 pour que ça donne ça si il n'est pas installer:
convmv_UTF8.sh v0.04
----------------------------------------------------------
Ce script permet de lancer en boucle l'utilitaire convmv qui permet de convertir les noms de
fichiers codés en autre chose que UTF-8 vers UTF-8.
Relancer le script avec l'argument ALLCODES si jamais aucun résultat n'a été trouvé.
----------------------------------------------------------
ERREUR : convmv n'est pas installé, veuillez l'installer en tapant :
Sous Arch Linux:
sudo pacman -S convmv
Sous Debian/Ubuntu:
sudo apt-get install convmv
# On vérifie si l'utilitaire convmv est bien installé
chemin=`which convmv 2> /dev/null`
if [ -z "$chemin" ] ; then
echo -e "$RED ERREUR : convmv n'est pas installé, veuillez l'installer en tapant : "
echo
echo -e "$NORMAL Sous Arch Linux: "
echo -e "$BLUE sudo pacman -S convmv "
echo
echo -e "$NORMAL Sous Debian/Ubuntu: "
echo -e "$BLUE sudo apt-get install convmv "
echo
echo
echo -e "$NORMAL "
exit 1
fi
Et j'ai supprimé aussi la première ligne car javais:
convmv_UTF8.sh: line 1: !/bin/bash: Aucun fichier ou dossier de ce type
.
.
Du coup pour l'instant je peux pas essayer les modifs suggérées par FreelY ...
Si! il y a toujours tes zips de tests ça ne fonctionne pas?
Dernière modification par FreelY (Le 11/05/2010, à 05:22)
NON AUX RACKETiciels!
[ ARCH ] [ Clavier BÉPO ]
Hors ligne
#64 Le 11/05/2010, à 05:45
- Lapogne71
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Et j'ai supprimé aussi la première ligne car javais:
convmv_UTF8.sh: line 1: !/bin/bash: Aucun fichier ou dossier de ce type
==> tout bon script doit commencer par la description du shell à utiliser. ici j'ai choisi "bash".
Normalement il y a un # au début de cette ligne, vérifie que tu ne l'as pas toi-même effacée !
Lapogne71 a écrit :Du coup pour l'instant je peux pas essayer les modifs suggérées par FreelY ...
Si! il y a toujours tes zips de tests ça ne fonctionne pas?
==> oui mais çà ne donne rien, et en lançant directement convmv "à la main", je n'obtiens que des "already UTF-8" :
=>convmv -f iso-8859-15 -t utf-8 *
Starting a dry run without changes...
Skipping, already UTF-8: ./1_dossier_avec_accents-����������������
Skipping, already UTF-8: ./1_fichier_avec_accents-����������������.txt
No changes to your files done. Use --notest to finally rename the files.
Hors ligne
#65 Le 11/05/2010, à 07:34
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
ok pour ton conseil de wich, mais je ne peux pas indiquer pour chaque distribution quelle est la commande d'installation...
en appliquant tes modifs, mon code devrait passer chez toi...
perso les script fonctionnes chez moi.
je regarderai ca plus tard car la je vais au dodo et je retaf ce soir.
mais promis je me repencherai dessus.
essai de dire clairement ce que tu voudrais que fasse le script, que je suive ton idee et ton besoin.
Dernière modification par Hizoka (Le 11/05/2010, à 07:34)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#66 Le 11/05/2010, à 13:20
- twocats
Re : [Script] pour renommer les fichiers avec problèmes d'accents
ok pour ton conseil de wich, mais je ne peux pas indiquer pour chaque distribution quelle est la commande d'installation...
Pourquoi pas ?
Pour connaître la distrib tu crée la variable OS
OS="$(lsb_release -i -s|tr "[:upper:]" "[:lower:]")"
Ensuite tu peux faire un test de dépendance ainsi :
for PROG_REQ in convmv
do
if ! type -p ${PROG_REQ} >/dev/null 2>&1
then
echo -e "\n${ROUGE}Le logiciel ${PROG_REQ} n'est pas installé, il est nécessaire à ce script, faut-il l'installer ?${NOIR}"
read -p "[O]ui [N]on" confirmation_installation
if [[ ${confirmation_installation} == [OoYy]* ]]
then
case "${OS}" in
archlinux ) sudo pacman -S ${PROG_REQ} ;;
debian ) echo -e "Veuillez passer en root et taper la commande suivante :\napt-get install ${PROG_REQ}"; exit 0 ;;
mandrivalinux ) echo -e "Veuillez passer en root et taper la commande suivante :\nurpmi ${PROG_REQ}"; exit 0 ;;
ubuntu ) sudo apt-get -y --force-yes install ${PROG_REQ} ;;
esac
else
exit 0
fi
done
Je ne suis pas sûr que OS donne archlinux pour ARCH. Il faudrait que FreelY nous donne la sortie de la commande :
lsb_release -i -s
J'utilise 'type' plutôt que 'which' car 'type' est une commande builtin, intégrée à bash alors que 'which' est un programme externe.
La réponse est 42
Hors ligne
#67 Le 11/05/2010, à 16:53
- FreelY
Re : [Script] pour renommer les fichiers avec problèmes d'accents
@Lapogne71
Oups effectivement j'ai supprimé le # par erreur... :s
@Hizoka
Avec la petite modification: copie de la partie de Lapogne71 "On vérifie si l'utilitaire convmv est bien installé" dans ton script ça fonctionne et y a bien l'affichage des modifications avant renommage, je n'ai rien dis... il est nickel ton script!
Il sera vraiment parfait si y a une technique pour automatiser l'installation de convmv en fonction de la distrib, mais la c'est vraiment pour pinailler et avoir la cerise sur le gâteau. Il me convient très bien comme ça.
@twocats
"lsb_release -i -s" ne me donne rien, j'ai du faire l'installation du paquet "lsb-release" et là ça donne:
$lsb_release -i -s
arch
Sinon pour info:
$uname -a
Linux ArchLinux 2.6.33-ARCH #1 SMP PREEMPT Sun May 2 10:40:03 CEST 2010 x86_64 AMD Phenom(tm) II X4 925 Processor AuthenticAMD GNU/Linux
$cat /proc/version
Linux version 2.6.33-ARCH (tobias@LX-Laptop) (gcc version 4.5.0 (GCC) ) #1 SMP PREEMPT Sun May 2 10:40:03 CEST 2010
NON AUX RACKETiciels!
[ ARCH ] [ Clavier BÉPO ]
Hors ligne
#68 Le 11/05/2010, à 17:37
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
ok, des que je peux je le fais, promis.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#69 Le 12/05/2010, à 22:05
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
allez voir http://forum.ubuntu-fr.org/viewtopic.php?pid=3473413 pour tester mes commandes pour me donnez vos résultats svp.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#70 Le 21/10/2010, à 17:11
- nec
Re : [Script] pour renommer les fichiers avec problèmes d'accents
Merci pour ce script bien pratique, et encore merci de partager.
Très sympa
Hors ligne
#71 Le 27/12/2010, à 00:06
- mikryx
Re : [Script] pour renommer les fichiers avec problèmes d'accents
UN ÉNORME merci à vous pour ces scripts, ca m'a permis d'arrêter ce soir de renommer tout à la main ... vraiment Énorme.
Si seulement l'éducation était accessible à tous.
Hors ligne
#72 Le 30/12/2010, à 07:37
- teet
Re : [Script] pour renommer les fichiers avec problèmes d'accents
salut
que j'utilise l'un ou l'autre, j'ai un mauvais encodage, il m'affiche des carrés au lieu des caractères accentués.
manger du castor et vous sauverez un arbre !
ubuntu user 6419
Hors ligne
#73 Le 30/12/2010, à 08:16
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
upload un exemple de fichier si tu veux qu'on teste...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#74 Le 30/12/2010, à 09:10
- teet
Re : [Script] pour renommer les fichiers avec problèmes d'accents
ah zut, j'ai effacé les fichiers sources, il me reste que les renommés. Dès que j'en ai un je l'upload
Les fichiers exemples fonctionnent super bien.
manger du castor et vous sauverez un arbre !
ubuntu user 6419
Hors ligne
#75 Le 30/12/2010, à 09:20
- Hizoka
Re : [Script] pour renommer les fichiers avec problèmes d'accents
je viens de l'utiliser à l'instant et pas de probleme non, il faut voir le fichier source...
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne