Question

lorsque je tente de trier le fichier texte suivant « entrée »:

test1 3   
test3 2
test 4

avec la commande

sort input

la sortie est exactement l'entrée. Voici la sortie de

od -bc input

:

0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
          t   e   s   t   1  \t   3  \n   t   e   s   t   3  \t   2  \n
0000020 164 145 163 164 011 064 012
          t   e   s   t  \t   4  \n
0000027

Il est juste un onglet séparé fichier avec deux colonnes. Quand je fais

sort -k 2

La sortie passe à

test3 2
test1 3
test 4

qui est ce que j'attendais. Mais si je fais

sort -k 1

rien ne change par rapport à l'entrée, alors que je me attends à ce « test » pour trier avant « test1 ». Enfin, si je fais

cat input | cut -f 1 | sort

Je reçois

test
test1
test3

comme prévu. Y at-il une explication logique pour cela? Ce qui est une sorte supposée faire exactement par défaut, quelque chose comme:

sort -k 1

Ma version de tri:

sort (GNU coreutils) 7.4

Pas de solution correcte

Autres conseils

A partir des pages de manuel:

  

* AVERTISSEMENT * Le paramètre régional spécifié par l'environnement affecte   Trier          commande. LC_ALL = C pour obtenir l'ordre de tri traditionnel qui utilise   originaire de          les valeurs d'octets.

Il semble donc export LC_ALL = C doit aider

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top