commande 'sort' et la localisation...
Le
Frédéric BOITEUX
Bonjour,
Je viens de tomber sur un fait curieux : en utilisant 'sort' sur un fichi=
er
contenant des lignes commençant par des '#', je me suis aperçu que sort=
les
ignorait et triait ces lignes d'après les caractères qui suivent ces di=
èses !
Du coup, les différentes lignes commençant par ces dièses ne sont pas=
regroupées
mais dispersées d'après leur contenu :
$ echo "A
B
C
## A
## D" | sort
A
## A
B
C
## D
Ceci avec la locale française. Mais en locale US, cela donne :
$ echo "A
B
C
## A
## D" | env LC_ALL=C sort
## A
## D
A
B
C
Je ne m'attendais pas à cela (j'ai mis un moment avant de comprendre qu=
e cela
venait de la localisation), et surtout je n'ai rien trouvé là-dessus da=
ns les
pages de manuel de sort (en anglais ni en français)
Fred.
Je viens de tomber sur un fait curieux : en utilisant 'sort' sur un fichi=
er
contenant des lignes commençant par des '#', je me suis aperçu que sort=
les
ignorait et triait ces lignes d'après les caractères qui suivent ces di=
èses !
Du coup, les différentes lignes commençant par ces dièses ne sont pas=
regroupées
mais dispersées d'après leur contenu :
$ echo "A
B
C
## A
## D" | sort
A
## A
B
C
## D
Ceci avec la locale française. Mais en locale US, cela donne :
$ echo "A
B
C
## A
## D" | env LC_ALL=C sort
## A
## D
A
B
C
Je ne m'attendais pas à cela (j'ai mis un moment avant de comprendre qu=
e cela
venait de la localisation), et surtout je n'ai rien trouvé là-dessus da=
ns les
pages de manuel de sort (en anglais ni en français)
Fred.

Poser une question


Salut Patrice,
Merci de l'info, on en parle un peu effectivement dans la doc de la libc. ..
Il semble que ce soit la définition des 'Collation Functions' qui entrent en
jeu. Dans mon précédent exemple, il suffit de faire env LC_COLLATE=C sort pour
obtenir le tri que j'attendais.
Ce que je me demande, c'est comment en savoir plus sur les définitions de la
localisation française (et notamment sur ces ordres de tri ...)
Fred.
[...]
de mémoire, je dirai que les pages de manuel ne sont pas à jour... tu
retrouves ces problèmes avec ls, etc. (en fait tous les outils GNU).
Je crois que c'est documenté dans la libc...
Désolé pour les imprécisions : c'est tout de mémoire...
PK
--
| _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:
|,4- ) )-,_. , ( `'-' http://p.karatchentzeff.free.fr
'---''(_/--' `-'_)
bonjour,
[...]
Cf. archives DUF « Chiffres romains, locale et tri », du 19 juin 2005.
ça m'agace aussi pour ls :
$ ls -1 foo*
foo.aux
foobar.aux
foobar.dvi
foobar.tex
foo.dvi
foo.tex
En passant en locale belge ou suisse ça ne le fait plus...
--
Jacques L'helgoualc'h
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
La dernière partie de mon exposé lors de debconf5 donne les principes de base
http://people.debian.org/~barbier/talks/debconf5/glibc-locale.pdf
Denis
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Merci, cela a l'air bien intéressant et demande un examen approfondi,
mais ce que je me demandais, c'est s'il y a une commande qui indique *comme nt*
est faite la locate courante : ce qu'elle « contient » ? quels sont d éfinitions
utilisées ? Mais peut-être est-ce seulement dans le source de la libc ?
Fred.