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

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

Je reviens sur ce problème, pour lequel je n'ai toujours pas de solution

Je ne crois pas que mdfind fasse l'affaire puisqu'il ne s'agit pas de trouver un "é",
mais de trouver "tout ce qui n'est pas é è ë ê à â ä ö ô î ï ç"
Je ne crois pas qu'on puisse faire une telle regex avec kMDItemFSName,
ou alors j'ai pas trouvé.

J'ai tenté d'installer des version plus récentes que celles de Apple pour bash, awk (gawk) et find (findutils) via fink.
C'est pas mieux ou alors j'ai pas su faire.

Le truc qui me semblerait logique serait d'utiliser les regex unicode.
<http://www.regular-expressions.info/unicode.html>
Est-ce que vous connaissez
- un truc compatible avec ces regex
- un moyen de voir le unicode utilisé par un char (ls -1 | hexdump devrait le faire, mais avec quelle option ? )

Donc je récapitule pour ceux qui n'ont pas tout suivis :
$ touch testé
$ find . -name "*é*"

Merci !

Plouf

On 26 sept. 2012, at 16:03, Patrick Proniewski wrote:

> 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
>


--
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