GNT sans publicité, site mobile, fonctionnalitées exclusives...

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.
Lire les 11 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Frédéric BOITEUX
Le #8456671
Le mar 20 déc 2005 14:10:03 CET, Patrice Karatchentzeff

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...



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.
Patrice Karatchentzeff
Le #8456661
2005/12/20, Frédéric BOITEUX
Bonjour,

Je viens de tomber sur un fait curieux : en utilisant 'sort' sur un fic hier
contenant des lignes commençant par des '#', je me suis aperçu que so rt les
ignorait et triait ces lignes d'après les caractères qui suivent ces dièses !



[...]

Je ne m'attendais pas à cela (j'ai mis un moment avant de comprendre que cela
venait de la localisation), et surtout je n'ai rien trouvé là-dessus dans les
pages de manuel de sort (en anglais ni en français...)




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
'---''(_/--' `-'_)
Jacques L'helgoualc'h
Le #8456651
Frédéric BOITEUX a écrit, mardi 20 décembre 2005, à 14:06 :
Bonjour,



bonjour,

Je viens de tomber sur un fait curieux : en utilisant 'sort' sur un fichier
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 !


[...]
Je ne m'attendais pas à cela (j'ai mis un moment avant de comprendre que cela
venait de la localisation), et surtout je n'ai rien trouvé là-dessus dans les
pages de manuel de sort (en anglais ni en français...)



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
Denis Barbier
Le #8456631
On Tue, Dec 20, 2005 at 02:17:17PM +0100, Frédéric BOITEUX wrote:
Le mar 20 déc 2005 14:10:03 CET, Patrice Karatchentzeff

> 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...

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



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
Frédéric BOITEUX
Le #8456531
Le mar 20 déc 2005 15:40:25 CET, Denis Barbier
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



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.
Publicité
Suivre les réponses
Poster une réponse
Anonyme