Re: [LA-discussions] renommer fichier avec caractère exotique

[ Thread Index | Date Index | More linuxarverne.org/discussions Archives ]


Le 12/02/2011 02:43, Alexandre VERNIOL a écrit :
Le 11/02/2011 22:19, Julien GIMENEZ a écrit :
Le 08/01/2011 09:09, Daniel Cartron a écrit :
Le samedi 8 janvier 2011, Yann Cochard a écrit :
mv "pr*paration.ods" "préparation.ods"

super, ça marche. Faut les faire les uns après les autres mais bon c'est déjà
pas mal

il y a des commandes pour ça
rename
utfconvert

sinon pour rester avec mv le traitement peut se faire avec find/while/read mixé avec tr


---
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion


Bash commande one shoot évitant les caractères accentués dans les noms de fichier :

for i in $(ls);do mv ${i} $(echo "$i" |sed 'y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/');done

Liste les fichiers et renomme ceux avec des caractères étranges ( àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ ) par des caractères exploitables ( 
aceeeeiioouuuACEEEEIIOOUUU )

Mettre le tout dans un alias (dans .bashrc) : 

alias caract=`for i in $(ls);do mv ${i} $(echo "$i" |sed 'y/àçéèëêïîöôùüûÀÇÉÈËÊÏÎÖÔÙÜÛ/aceeeeiioouuuACEEEEIIOOUUU/');done`

Et comme ça tu as juste a taper caract et ça exécute l'ensemble de la commande dans le dossier courant. 

Alex

on ne peut pas forcément identifier les caractères à exclure ...
pourquoi tu ne factorises pas tes *grasses* lignes en robe de soie péruviennes par des a-z etc, avec tr par exemple, c'est plus adéquat pour les transpositions, c'est fait pour
après ça peut être des incompatibilités de codage
d'où
find . -maxdepth 1 | while read l ; do mv -iv  "${l}" `echo ${l} | iconv -f utf-8 -t iso-8859-15` ; done

-mais le résultat peut être violent-
en inversant utf-8 & iso-8859-15 selon besoin propre à chacun même si nous avons tant de chose à faire ce weekend jusqu'à la cité d'émeraude

cordialement




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/