Einführung
In diesem Handbuch zeige ich Ihnen, wie Sie Daten in Dateien mit Trennzeichen und aus der Ausgabe anderer Befehle sortieren.
Sie werden nicht überrascht sein, dass der Befehl, den Sie zur Ausführung dieser Aufgabe verwenden, "sortieren" heißt. In diesem Artikel werden alle wichtigen Schalter des Sortierbefehls bereitgestellt.
Beispieldaten
Die Daten in einer Datei können sortiert werden, solange sie in gewisser Weise begrenzt sind.
Nehmen wir zum Beispiel die letzte Tabelle der schottischen Premier League im letzten Jahr und speichern Sie die Daten in einer Datei mit dem Namen "spl".
Sie können eine Datendatei wie folgt mit einem Club erstellen, wobei die Daten für diesen Club in jeder Zeile durch Kommas getrennt sind.
Mannschaft | Tore geschossen | Tore gegen | Punkte |
---|---|---|---|
keltisch | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
Herzen | 59 | 40 | 65 |
St Johnstone | 58 | 55 | 56 |
Motherwell | 47 | 63 | 50 |
Ross County | 55 | 61 | 48 |
Inverness | 54 | 48 | 52 |
Dundee | 53 | 57 | 48 |
Partick | 41 | 50 | 46 |
Hamilton | 42 | 63 | 43 |
Kilmarnock | 41 | 64 | 36 |
Dundee United | 45 | 70 | 28 |
So sortieren Sie Daten in Dateien
An diesem Tisch kann man sehen, dass Celtic die Liga gewonnen hat und Dundee United den letzten Platz belegt hat. Wenn Sie ein Dundee United-Fan sind, möchten Sie vielleicht, dass Sie sich besser fühlen. Dies können Sie tun, indem Sie die erzielten Tore sortieren.
Führen Sie dazu den folgenden Befehl aus:
sort -k2 -t, spl
Diesmal wäre die Reihenfolge wie folgt:
- Partick
- Kilmarnock
- Hamilton
- Dundee United
- Motherwell
- Dundee
- Inverness
- Ross County
- St Johnstone
- Herzen
- Aberdeen
- keltisch
Der Grund für die Ergebnisse in dieser Reihenfolge ist, dass in Spalte 2 die Spalte mit den erzielten Zielen angegeben ist und die Sortierung vom niedrigsten zum höchsten Wert geht.
Mit dem Schalter -k können Sie die Spalte auswählen, nach der sortiert werden soll, und mit dem Schalter -t können Sie das Trennzeichen auswählen.
Um sich wirklich glücklich zu machen, können die Dundee United-Fans mit dem folgenden Befehl nach Spalte 4 sortieren:
sort -k4 -t, spl
Jetzt sind Dundee United oben und Celtic unten.
Dies würde natürlich sowohl die Celtic- als auch die Dundee-Fans sehr unglücklich machen. Um die Dinge richtig zu stellen, können Sie mit dem folgenden Schalter in umgekehrter Reihenfolge sortieren:
sort -k4 -t, -r spl
Mit einem eher bizarren Schalter können Sie nach dem Zufallsprinzip sortieren, was die Datenzeilen nur durcheinander bringt.
Sie können dies mit dem folgenden Befehl tun:
sort -k4 -t, -R spl
Dies kann zu echten Problemen führen, wenn Sie -r und Ihren -R-Schalter verwechseln.
Der Sortierbefehl kann auch Datumsangaben in Monatsreihenfolge sortieren. Schauen Sie sich die folgende Tabelle an:
Monat | Verwendete Daten |
---|---|
Januar | 4G |
Februar | 3000K |
März | 6000K |
April | 100M |
Kann | 5000M |
Juni | 200K |
Juli | 4000K |
August | 2500K |
September | 3000K |
Oktober | 1000K |
November | 3G |
Dezember | 2G |
Die obige Tabelle zeigt den Monat des Jahres und die auf einem mobilen Gerät verwendete Datenmenge.
Sie können die Daten mit dem folgenden Befehl alphabetisch sortieren:
sort -k1 -t, datausedlist
Sie können den Monat auch mit folgendem Befehl sortieren:
sort -k1 -t, -M datausedlist
Die Tabelle oben zeigt sie natürlich bereits in Monatsreihenfolge, aber wenn die Liste zufällig ausgefüllt wurde, wäre dies eine einfache Möglichkeit, sie zu sortieren.
Wenn Sie sich die zweite Spalte ansehen, sehen Sie, dass alle Werte in einem für Menschen lesbaren Format vorliegen, das nicht so aussieht, als wäre es einfach zu sortieren. Der Sortierbefehl kann die verwendeten Datenspalten jedoch mit folgendem Befehl sortieren:
sort -k2 -t, -h datausedlist
So sortieren Sie die von anderen Befehlen übergebenen Daten
Während das Sortieren von Daten in Dateien nützlich ist, kann der Sortierbefehl auch zum Sortieren der Ausgabe nach anderen Befehlen verwendet werden:
Schauen Sie sich zum Beispiel den Befehl ls an:
ls -lt
Der obige Befehl gibt jede Datei als Datenzeile zurück, wobei die folgenden Felder in Spalten angezeigt werden:
- Berechtigungen
- Knotenanzahl
- Nutzername
- Gruppenname
- Größe
- letztes Zugriffsdatum
- Dateiname
Sie können die Liste nach Dateigröße sortieren, indem Sie den folgenden Befehl ausführen:
ls -lt | sort -k5
Um die Ergebnisse in umgekehrter Reihenfolge abzurufen, verwenden Sie den folgenden Befehl:
ls -lt | sort -k5 -r
Der Befehl sort kann auch in Verbindung mit dem Befehl ps verwendet werden, der die auf Ihrem System ausgeführten Prozesse auflistet.
Führen Sie beispielsweise den folgenden Befehl ps auf Ihrem System aus:
ps -eF
Der obige Befehl gibt viele Informationen zu den Prozessen zurück, die derzeit auf Ihrem System ausgeführt werden.
Eine dieser Spalten hat die Größe, und Sie möchten vielleicht sehen, welche Prozesse am größten sind.
Um diese Daten nach Größe zu sortieren, verwenden Sie den folgenden Befehl:
ps -eF | sort -k5
Zusammenfassung
Der Sortierbefehl hat nicht viel zu bieten, kann aber sehr schnell nützlich sein, wenn Sie die Ausgabe anderer Befehle in eine sinnvolle Reihenfolge bringen, insbesondere wenn der Befehl keine eigenen Sortierschalter zur Verfügung hat.
Weitere Informationen finden Sie in den Handbuchseiten zum Sortierbefehl.