risultato inaspettato da GNU sorta
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