OVH Cloud OVH Cloud

commande 'sort' et la localisation...

11 réponses
Avatar
Frédéric BOITEUX
Bonjour,

Je viens de tomber sur un fait curieux : en utilisant 'sort' sur un fichi=
er
contenant des lignes commen=E7ant par des '#', je me suis aper=E7u que sort=
les
ignorait et triait ces lignes d'apr=E8s les caract=E8res qui suivent ces di=
=E8ses !
Du coup, les diff=E9rentes lignes commen=E7ant par ces di=E8ses ne sont pas=
regroup=E9es
mais dispers=E9es d'apr=E8s leur contenu :

$ echo "A
B
C
## A
## D" | sort
A
## A
B
C
## D

Ceci avec la locale fran=E7aise. Mais en locale US, cela donne :
$ echo "A
B
C
## A
## D" | env LC_ALL=3DC sort
## A
## D
A
B
C

Je ne m'attendais pas =E0 cela (j'ai mis un moment avant de comprendre qu=
e cela
venait de la localisation), et surtout je n'ai rien trouv=E9 l=E0-dessus da=
ns les
pages de manuel de sort (en anglais ni en fran=E7ais...)

Fred.

1 réponse

1 2
Avatar
Denis Barbier
On Wed, Dec 28, 2005 at 11:34:26PM +0100, Jacques L'helgoualc'h wrote:
.tmp $ mv -v [a-l]* tmp/
`Aalto' -> `tmp/Aalto'
`anneaux' -> `tmp/anneaux'
`lune' -> `tmp/lune'
.tmp $ ls -l
total 8
-rw-r--r-- 1 lhh lhh 0 2005-12-28 23:15 Lyre
drwxr-xr-x 2 lhh lhh 4096 2005-12-28 23:20 tmp

Pourquoi Aalto bouge-t-il, et pas Lyre ? Comme comportement /par
défaut/, ça me paraît incohérent...



En gros, c'est parce que l'ordre est a A b B c C ... k K l L m M ...
Donc A est entre a et l, mais pas L.

En pratique, tu peux utiliser LC_COLLATE=C, il est très rare d'avoir
besoin du tri lexicographique.

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
1 2