Frage

Ich versuche, eine Tabelle zu sortieren basierend auf dem ersten Wert vom kleinsten zum größten mit dem Gnu-coreutils Befehl sort.

Meine Tabelle sieht etwa so aus:

file.txt

100,0.8,0.323, ... some more data
2,0.323,0,323, ...
4, ...
53, ...
.
.
121, ...

Ich habe dabei die folgende versucht:

sort -n -k 1 file.txt

aber ich habe Dinge wie ...

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

Ich mag die logische numerische Reihenfolge.

Ted.

War es hilfreich?

Lösung

Der richtige Aufruf von sort aussehen könnte

$ sort -n -t , -k 1,1 file.txt

Erklärung:

  • -n sort numerisch
  • -t , Komma Feldtrenn
  • -k 1,1 Art auf dem ersten Feld
  • file.txt Eingabedatei

die oben angegebene Programm aufrufen gibt

  

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

Wenn von Feldern des Sortieren ist es sehr praktisch zu bedienen --debug Option, nur um sicher zu stellen, dass Art wie erwartet funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top