Ich versuche, eine csv enthalten Temperaturen durch die 4. Spalte sortieren.So sortieren Sie CSV nach spezifischer Spalte
Sort -n -k4 temperature.csv
Als Ergebnis bekomme ich diese:
2017-06-24 11:20,23.57,19.0,16.7,0.087,3.615
2017-06-24 11:25,23.51,19.0,16.7,0.087,3.689
2017-06-24 12:45,22.03,19.0,17.1,0.096,4.152
2017-06-24 13:00,21.92,19.0,17.1,0.096,4.229
2017-06-24 14:00,22.22,19.0,17.4,0.197,4.639
2017-06-24 14:25,22.21,19.0,17.5,0.197,4.774
2017-06-24 15:10,22.30,19.0,17.1,0.134,5.472
2017-06-24 16:00,22.42,19.0,17.3,0.134,5.93
2017-06-24 17:45,22.07,21.0,17.0,0.144,6.472
2017-06-24 18:25,21.90,21.0,16.9,0.15,6.814
2017-06-24 19:40,23.01,21.0,16.9,0.318,8.503
Wie Sie die vierte Spalte ist nicht richtig sortiert sehen. Ich würde 17,5 in der ersten Zeile und 16,7 in der letzten Zeile erwarten.
Ich habe auch versucht dies:
sort -n -t. -k4,1n temperature.csv
Das Ergebnis ist genau das gleiche wie im vorherigen Beispiel. Kann mir jemand einen Tipp geben?
Eine richtige, sachdienliche Antwort (+1), aber man konnte schon erwähnt, dass 'sort' fehlschlagen kann, wenn die Datendatei enthält' "zitierte Strings, die Kommas (oder sogar Zeilenumbrüche) enthalten können" '. Eine allgemeinere Lösung sollte das Parsen der Daten beinhalten. – gboffi
@gboffi, für ideale und komplexe Eingaben würde es eine andere komplexe Lösung geben. Für die aktuelle Eingabe, wird einfach 'sort 'die Arbeit – RomanPerekhrest
@romanperekhrest Ihre Antwort funktioniert wie ein Charme! Vielen Dank. – wtrdk