l'ordinamento con il tipo di coreutil
-
26-09-2019 - |
Domanda
Sto cercando di ordinare una tabella sulla base del primo valore dal più piccolo al più grande con il comando gnu-coreutils sorta.
Il mio aspetto da tavolo qualcosa di simile:
file.txt
100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...
Ho provato a fare quanto segue:
sort -n -k 1 file.txt
ma ottengo le cose come ...
10,0,10,10
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
Voglio l'ordine numerico logico.
Ted.
Soluzione
La corretta invocazione sort
potrebbe apparire come
$ sort -n -t , -k 1,1 file.txt
Spiegazione:
-
-n
sorta numericamente -
-t ,
virgola è separatore di campo -
-k 1,1
sorta sul primo campo - file di input
file.txt
Richiamo del programma di cui sopra dato dà
10,0,10,10
21,1,10,11
32,2,10,12
43,3,10,13
54,4,10,14
100,9,1,10
101,9,2,11
102,9,3,12
103,9,4,13
104,9,5,14
105,9,6,15
106,9,7,16
107,9,8,17
108,9,9,18
Quando si ordina da campi è molto comoda opzione uso --debug
a, solo per assicurarsi che questo genere funziona come previsto.