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

Tu n'as plus qu'à te palucher la liste des caractères "autorisés" du côté de http://jrgraphix.net/r/Unicode/0020-007F (utilise le menu déroulant à droite pour changer de set).
Puis créer ton filtre avec grep sous une forme qui ressemble à ça :

grep -P "[\x41-\x5A]"

ici je grep les caractères A à Z : à toi de compléter pour avoir un grep qui fait tout ce que tu veux.

Pour prendre un peu d'altitude par rapport à ton problème : arrête de perdre ton temps à essayer de compenser les dérives de tes utilisateurs, c'est perdu d'avance :) Ça plante, c'est tant-pis pour eux. Si ils râlent, tu leur imprimes à chacun une feuille A4 avec la liste des caractères "autorisés".


On 28 sept. 2012, at 14:22, Nicolas Michel wrote:

> Hello
>
> Merci, c'est très intéressant, mais c'est pas ça que je cherche à faire.
>
> J'ai des gens qui nomment leur fichiers avec des caractères à la con, comme ; ou !
>
> Comme ils sont capables de tout et que en utf-8, tout ça fait beaucoup ce charactères,
> je veux lister tous les char autorisés, les accent en faisant partie,
> puis chercher les fichiers contenant un char qui n'en fait pas partie.
>
> "( kMDItemFSName != '*é*' ) AND '( kMDItemFSName != '*à*' )"
> ne trouvera pas un fichier nommé "C'est pas mon fichié"
> pourtant l'apostrophe n'est pas spécialement conseillé dans un nom de fichier.
>
> Tu vois le truc ?
>
> Merci encore !
>
>
> Nicolas
>
> On 28 sept. 2012, at 13:28, Patrick Proniewski wrote:
>
>> On 28 sept. 2012, at 13:02, Nicolas Michel wrote:
>>
>>> 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 "
>>
>>
>> tout ce qui n'est pas, ou tout ce qui ne contient pas ?
>>
>> Si c'est tout ce qui ne contient pas é è ë ê à â ä ö ô î ï ç dans le nom du fichier, alors voilà de quoi générer la requête spotlight :
>>
>> search='( kMDItemFSName != '*é*' )'
>> for i in é è ë ê à â ä ö ô î ï ç; do
>> search=$search" AND ( kMDItemFSName != '*$i*' )"
>> done
>> echo mdfind -onlyin ~ \"$search\"
>>
>> Par contre, la bonne blague c'est que tu ne peux pas supprimer le echo pour lancer la requête directement, sinon il se prend les pieds dans quelque chose. Il faut copier coller la sortie du echo dans le terminal pour lancer la recherche.
>>
>> patpro
>
> --
> Nicolas Michel
> _______________________________________________
> 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