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.

È stato utile?

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.

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