J'ai un exemple de fichier contenant des caractères "aA0_-" sur chacun d'eux. Le tri à l'aide de tri GNU donne l'ordre de tri suivant:comportement de tri incohérent
$ cat /tmp/sample | sort
_
-
0
a
A
après annexant un autre caractère, on obtient un ordre différent (les caractères non-alphanumériques semble avoir une priorité inférieure):
$ cat /tmp/sample | sed 's/$/x/' | sort
0x
ax
Ax
x
_x
-x
tandis que lorsque nous insérons ce caractère au début, nous obtenons l'ordre de tri d'origine:
$ cat /tmp/sample | sed 's/^/x/' | sort
x
x_
x-
x0
xa
xA
.. quelle est l'explication d'un tel comportement?
MISE À JOUR
quand 'z
' et caractères '' Z
sont inclus dans l'échantillon, le résultat semble encore sranger:
$ cat /tmp/sample | sed 's/$/x/' | sort
0x
ax
Ax
x
_x
-x
zx
Zx
.. mais à la lumière de la réponse correcte, c'est parce que tous les '', '
_
' et '-
' sont des espaces dans les paramètres régionaux actuels (en_US.UTF-8) et ne sont pas ignorés dans le tri.
Quelle est votre locale? –
@ [Sanjay Manohar] locale est en_US.UTF-8. hmm, bon indice;) – mykhal