Tri lexicographiquement en bash

5

Je veux que les données soient triées comme Python les compare, en comparant les valeurs ASCII. Mais sort commande semble trop intelligent pour cela. Regarde. Puisque '.' < '9':

$ sort
.
9
^D
.
9

$ sort
1.
19
^D
1.
19

Ces deux sont bien. Mais pour une raison quelconque, si je viens d'ajouter des caractères aux extrémités:

$ sort
1.c
19z
^D
19z
1.c

Il essaie probablement de lire cela comme un chiffre ou quelque chose comme ça. Je ne veux pas ça, je veux qu'il trie des choses en comparant les valeurs ASCII de chaque caractère. Impossible de trouver une telle option dans man, des idées?

valya
la source

Réponses:

5

Le comportement décrit est probablement un effet de la localisation. Désactiver les paramètres régionaux pour le tri:

$ echo '1.c
19z ' | LC_ALL=C sort
1.c
19z
choroba
la source
Wow, merci, essayez cela maintenant (le fichier trié est gros).
valya