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

Re: commande 'sort' et la localisation...



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, mais si tu as des noms de fichiers avec
accents, 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. Idem pour les majuscules, on préfère
     Aalto anneaux lune Lyre tmp
à
     Aalto Lyre anneaux lune tmp
(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

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

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.

Denis



Reply to: