Re: [#!/fr] Script qui manipule le nom des fichiers

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Patrick Proniewski
Date:  
À: La liste francophone des scripts shell
Sujet: Re: [#!/fr] Script qui manipule le nom des fichiers
Salut,

Il y a clairement un truc pas drôle avec les histoires d'encodage des noms de fichiers. Je ne suis pas parvenu à contourner le problème, mais mon temps de cerveau disponible est assez faible actuellement ;)

Je suis tout de même parvenu à trouver une sorte de workaround. En se basant sur Spotlight, tu peux faire une partie du travail :

mdfind -onlyin ~ "( kMDItemFSName == '*é*' )"

Quelques remarques :
- ça ne parcourt pas le disque, mais l'index de Spotlight (carte != territoire)
- ça va donc sensiblement plus vite, mais ça peut rater des trucs
- des tests à base de touch ne fonctionneront pas, car les fichiers vides ne sont pas répertoriés par spotlight, il faut tester avec de vrais fichiers
- je pense que l'expression complète pour intégrer tous les caractères que tu souhaites trouver va être longue comme le bras
- n'hésite pas à ajouter des critères de filtrage pour ne pas récupérer des indésirables (dans Library/Mail y'a plein de trucs qui remontent et qui ne sont pas pertinents par rapport à ta problématique)
- il y a sûrement un moyen à base d'escape de faire manger les bons caractères à find pour qu'il les trouve, mais je n'y suis pas parvenu



On 26 sept. 2012, at 14:56, Nicolas Michel wrote:

> Petit complément d'info :
>
> $ touch testé
> $ find . -name "*é*"
> $ find . |egrep 'é'
>
> ls -1 testé |hexdump -c
> 0000000 t e s t ? ? \n
>
> ls -1 testé |hexdump -C
> 00000000 74 65 73 74 c3 a9 0a
>
> Je re-précise que ça concerne Mac OS X uniquement,
> le linux que j'ai testé ne pose pas ce problème
>
> Merci !
>
> On 26 sept. 2012, at 11:53, Nicolas Michel wrote:
>
>> PS
>> La commande que je veux lancer pour localiser les fichiers / dossiers resemble à ça :
>> find $HOME -name "*[^[:alnum:]|.| |_|-|é|è|ê|ë]*" -print0 |xargs -0 ls -d1B > /tmp/To_Rename.txt
>>
>
> --
> Nicolas Michel
> Rivage 9, 1400 Yverdon,
> CH - Suisse
> Natel : 079 947 60 20
>
> _______________________________________________
> archives :
> http://listes.patpro.net/list/sshfr.fr.html
> http://listes.patpro.net/mailman/listinfo/script_shell_fr


_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr