Domanda

quando cerco di ordinare il seguente file di testo 'input':

test1 3   
test3 2
test 4

con il comando

sort input

l'uscita è esattamente l'ingresso. Ecco l'output di

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

E 'solo una scheda di file separato con due colonne. Quando faccio

sort -k 2

L'uscita cambia a

test3 2
test1 3
test 4

che è quello che mi sarei aspettato. Ma se faccio

sort -k 1

non cambia nulla rispetto all'ingresso, mentre io aspetterei 'test' di sorta prima di 'test1'. Infine, se faccio

cat input | cut -f 1 | sort

ho

test
test1
test3

come previsto. C'è una spiegazione logica per questo? Che cosa esattamente è una sorta dovrebbe fare per impostazione predefinita, qualcosa come:

sort -k 1

La mia versione di un ordine:

sort (GNU coreutils) 7.4

Nessuna soluzione corretta

Altri suggerimenti

Dalle pagine man:

  

* ATTENZIONE * Il locale specificato dall'ambiente influenza   ordinare          ordine. Impostare LC_ALL = C per ottenere l'ordinamento tradizionale che utilizzi   nativo          valori di byte.

Così sembra export LC_ALL = C deve aiutare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top