Script de suppression des caractères accentué
padz
-
Liloulinx -
Liloulinx -
Bonjour,
je cherche (depuis 2 jours) un shell script qui permette de supprimer les caractères accentués dans mes noms de fichier. j'ai trouvé du php, du python, du perl, du javascript, mais pas shell script.
Or : je n'arrive pas à croire que ca n'ait pas été fait déjà ??!!:):)
merci à tous.
je cherche (depuis 2 jours) un shell script qui permette de supprimer les caractères accentués dans mes noms de fichier. j'ai trouvé du php, du python, du perl, du javascript, mais pas shell script.
Or : je n'arrive pas à croire que ca n'ait pas été fait déjà ??!!:):)
merci à tous.
A voir également:
- Enlever les accents python
- Forcer suppression fichier - Guide
- Script vidéo youtube - Guide
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
6 réponses
Méthode avec "sed" :
[lol]$ ls -1 bîbïBÔö.txt ÇàVÀ.txt GÉGÉ.txt màmÀ.txt mémé.txt ùlûlü.txt [lol]$ for i in $(ls *.txt);do mv ${i} $(echo "$i" |sed 'y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/');done [lol]$ ls -1 bibiBOo.txt CaVA.txt GEGE.txt mamA.txt meme.txt ululu.txt [lol]$Méthode avec "tr" :
[lol]$ ls -1 bîbïBÔö.txt ÇàVÀ.txt GÉGÉ.txt màmÀ.txt mémé.txt ùlûlü.txt [lol]$ for i in $(ls *.txt);do mv ${i} $(echo "$i" |tr 'àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ' 'aceeeeiioouuuACEEEEIIOOUUU');done [lol]$ ls -1 bibiBOo.txt CaVA.txt GEGE.txt mamA.txt meme.txt ululu.txt [lol]$;-))
Salut,
Tu peux faire ça soit avec la commande "tr" soit avec "sed" :
;-))
Tu peux faire ça soit avec la commande "tr" soit avec "sed" :
tr 'àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ' 'aceeeeiioouuuACEEEEIIOOUUU' sed 'y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/'Libre à toi d'adapter l'une ou l'autre dans ton script...
;-))
The dos2unix utility converts characters in the DOS extended character set to the corresponding ISO standard characters
je ne peux pas tester, mais je crois me souivenir que oui, bien que la queston du sujet soit "supprimmer" et pas convertir
je ne peux pas tester, mais je crois me souivenir que oui, bien que la queston du sujet soit "supprimmer" et pas convertir
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour ces réponses ;)
pour les commandes "tr" et "sed", jai essayé mais ca n'a pas l'air de marcher (je perds l'invite, ca clignote puis rien)
(J'ai essayé à la fois en passant directement la commande dans une fenêtre terminal et dans un script).
Aurais-je loupé un étage ?
pour les commandes "tr" et "sed", jai essayé mais ca n'a pas l'air de marcher (je perds l'invite, ca clignote puis rien)
(J'ai essayé à la fois en passant directement la commande dans une fenêtre terminal et dans un script).
Aurais-je loupé un étage ?
Bonjour,
J'ai rédigé rapidement le script ci-dessous mais il ne marche pas avec des nom de fichiers qui ont des espaces. Avez-vous une idée comment l'améliorer ? Le problème est dans le
J'ai rédigé rapidement le script ci-dessous mais il ne marche pas avec des nom de fichiers qui ont des espaces. Avez-vous une idée comment l'améliorer ? Le problème est dans le
for i in $(ls $nom_rep/)où le i prend chacun des mots qui forment le nom d'un fichier qui contient des espaces au lieu de prendre le nom entier. J'ai mis la commande et le nom entre double-cotes, ça s'est amélioré un peu, mais le pb persiste !
echo "Ce script remplace les caractères accentués des noms des fichiers d'un repertoire donné par des caractères non accentués." read -p 'Nom du rep (incluant le chemin) : ' nom_rep echo "Le nom du rep donné est : $nom_rep" if [ ! -e $nom_rep ]; then echo "Rep n'existe pas" else if [ -d $nom_rep ]; then for i in $(ls $nom_rep/) do echo " tentative of renaming (mouving) of the file $i" mv $nom_rep/${i} $nom_rep/$(echo $i |sed 'y/ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ/aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby/') done else if [ -f $nom_rep ]; then echo "Vous avez tapé le nom d'un fichier et nom pas d'un rep" fi fi fi
Le savoir est la seule ressource qui s'accroit lorsqu'on la partage
J'ai rédigé rapidement le script ci-dessous mais il ne marche pas avec des nom de fichiers qui ont des espaces. Avez-vous une idée comment l'améliorer ? Le problème est dans le où le i prend chacun des mots qui forment le nom d'un fichier qui contient des espaces au lieu de prendre le nom entier. J'ai mis la commande et le nom entre double-cotes, ça s'est amélioré un peu, mais le pb persiste !
Ben forcément, on ne boucle jamais sur la sortie de la commande ;-(
Oui, je n'ai pas bien vu. J'ai mis 2 fois le $. C'était lors des tests.
Sinon, je l'ai changé en comme ceci:
Cette fois-ci ça marche car dans la ligne correspondant à la commande mv, j'ai mis mes variables de fichier source et fichier destination entre double-quottes.
Merci pour votre aide.