Sortieren nach mehreren Spalten in der bash
Ich habe eine Datei mit 2 Spalten, "Name" und "Alter", die Aussehen wie diese:
Alex, 15
Mary, 12
Alex, 28
Zoe, 16
Alex, 17
Werde ich Sortieren nach der ersten Spalte in alphabetischer Reihenfolge, mit sort -t ',' -k1,1 filename.txt
, aber wenn es gleiche Namen, ich will die 2. Spalte sortiert werden, in umgekehrter Weise, wie Sie in der ursprünglichen Datei, so wie hier:
Alex, 17
Alex, 28
Alex, 15
Mary, 12
Zoe, 17
Wie kann ich dies tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Datei Lesen, von hinten, Sortieren nach der ersten Spalte und -s zu bewahren, um im Falle von gleichen Wert
Wops es scheint, dass ich falsch verstanden, dein problem. Ich kann nicht finden, von einem magischen Befehl, aber ein kleines Skript könnte die Arbeit zu tun:
Kurze Erklärung:
$names_sorted
.tac
Hoffe es ist das, was Sie wollte, zu dieser Zeit 😉
Nicht sicher, warum Sie wollen, dies zu tun! Aber man kann in python ziemlich leicht (nicht preserve whitespace):
oder
Ausgabe:
Erklären:
-t
ist die Angabe der Feld-separator,-k
können verwendet werden, um geben Sie die start-und Stopp-position des Feldes, und wir könnten hinzufügen eines einzigen BuchstabenOPTS
für das Feld für die Bestellung, zum Beispielr
bedeutet umkehren das Ergebnis der Vergleiche.Dieser sollte gibt, was Sie wollen: