[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: