Re: commande 'sort' et la localisation...
Denis Barbier a écrit, jeudi 29 décembre 2005, à 19:42 :
> On Thu, Dec 29, 2005 at 04:45:27PM +0100, Jacques L'helgoualc'h wrote:
> > Denis Barbier a écrit, jeudi 29 décembre 2005, à 15:56 :
> > > On Thu, Dec 29, 2005 at 11:41:40AM +0100, Jacques L'helgoualc'h wrote:
> > > > [tri lexicographique ou pas]
> > [...]
> > > Comme ls et sort utilisent tous les deux le contenu de la variable
> > > LC_COLLATE, il est difficile d'avoir un comportement différent par
> > > défaut.
> >
> > D'accord. Du coup, c'est l'appel à LC_COLLATE qui me paraît douteux pour
> > ls... quand les noms de fichiers seront en UTF-*, ce sera une autre
> > paire de manches.
>
> Je ne comprends pas ta remarque,
Eh bien, ls devrait d'abord choisir une option qui tient compte des
points, soulignés et tirets, avant de se soucier de la cédille...
> mais si tu as des noms de fichiers avec accents,
C'est bientôt vendredi :) --- Je n'en ai pas ! C'est Mal©.
Sérieusement, je pense qu'un nom de fichier est un identificateur
technique, qu'il vaudrait mieux limiter aux caractères ascii imprimables
au sens strict (pour éviter "<SPC><SPC><SPC><TAB>", et autre ^G).
Qu'on y ajoute une courte description dans la langue de l'utilisateur,
pourquoi pas, mais que ce soit cette chaîne l'unique clef d'accès, c'est
aller vers les ennuis.
Après l'UTF-* (donc les idéogrammes), on va y ajouter les panneaux
routiers et des icônes *.jpeg pour les analphabètes ? (si ça se trouve,
l'idée est déjà brevetée).
> comment voudrais-tu les voir afficher ?
> 1. chameau souris éléphant
> 2. chameau éléphant souris
>
> A priori c'est le 2e que l'on veut, c'est pourquoi utiliser LC_COLLATE
> pour ls est judicieux.
Bon, oui, pourquoi pas...
> Idem pour les majuscules, on préfère
> Aalto anneaux lune Lyre tmp
> à
> Aalto Lyre anneaux lune tmp
Ah, là j'aime autant le second, qui permet de marquer l'importance. (il
me semble que c'était réglable quelque part (emacs ? (dired ?))).
> (ce qui serait obtenu avec LC_COLLATE=C). Mais du coup, le résultat
> n'est pas toujours celui attendu, comme tu l'as montré avec mv.
> Honnêtement, je ne vois pas de solution qui soit intuitive pour tous
> ces cas de figure, c'est pourquoi il faudrait toujours utiliser
> les regexps en locale C. Pour reprendre ton exemple :
> LC_ALL=C mv -v [a-lA-L]* tmp
En outre, il ne me semble pas trop cohérent de ne tenir compte de la casse que
dans certains cas : [a-c] != [abc] ...
> Autre exemple rigolo, en estonien le z apparait entre le s et le t.
> Résultat des courses : devine ce que fait la commande
> echo rstuvwxyz123 | sed -e 's/[a-z]//g'
> en locale et_EE.UTF-8 ;)
Résultat, des erreurs incompréhensibles pour les étrangers, des scripts
qui n'échouent que dans certaines régions, etc.
> Mais là où je suis parfaitement d'accord avec toi, c'est que le point
> a une signification particulière dans les noms de fichiers, l'affichage
> des noms de fichiers devrait en tenir compte.
Merci.
--
Jacques L'helgoualc'h
Reply to: