sort ist ein häufig verwendeter Befehl in Linux-Befehlen, der zum Sortieren von Textinhalten verwendet wird. Im Folgenden werden Beispiele vorgestellt.
1. Grundbegriffe
sort sortiert den Eingabeinhalt. Der Eingabeinhalt kann eine Datei oder eine Standardeingabe sein. Der Inhalt der Originaldatei wird standardmäßig nicht geändert.
2. Syntax und Parameter
sortiere [OPTION] ... [DATEI] ...
Gemeinsame Parameter:
-t Trennzeichen : Geben Sie das beim Sortieren verwendete Trennzeichen an.
-k: Geben Sie die zu sortierende Spalte an.
-n: Sortieren nach numerischem Wert;
-r: in umgekehrter Reihenfolge sortieren;
-b: Ignoriere die führenden Leerzeichen im Sortierfeld oder in den Schlüsselwörtern.
-c: Überprüfen Sie, ob der zu sortierende Inhalt sortiert ist. Wenn er nicht sortiert ist, geben Sie die erste Spalte außerhalb der Reihenfolge aus. Andernfalls erfolgt keine Ausgabe.
-o DATEI: Gibt das Sortierergebnis anstelle der Standardausgabe in die angegebene Datei aus.
Drei Beispiele
Der im Beispiel verwendete Sortiertextinhalt besteht aus den ersten 10 Zeilen von / etc / passwd nach der Verarbeitung, wie unten gezeigt:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]#
3.0 Standard
Sortieren Sie die Sortierung standardmäßig nach ASCII-Code, wie unten gezeigt:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]#
[root@localhost ~]# sort passwd-sort
adfm:x:3:4
bion:x:1:1
daen:x:2:2
halt:x:7:5
laap:x:4:7
mail:x:8:12
oper:x:11:21
root:x:0:0
shut:x:6:3
sync:x:5:9
[root@localhost ~]#
3.1 -t und -k Parameter
Durch " : " getrennt, wählen Sie die dritte Spalte zum Sortieren aus, wie unten gezeigt:
[root@localhost ~]# sort -t ":" -k 3 passwd-sort
root:x:0:0
bion:x:1:1
oper:x:11:21
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
[root@localhost ~]#
Hinweis: Der ASCII-Code wird standardmäßig zum Sortieren verwendet, wie aus der Anordnung der dritten Zeile hervorgeht.
3.2 -n Parameter
Trennen Sie durch " : " die dritte Spalte, die nach numerischem Wert sortiert werden soll, wie unten gezeigt:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]# sort -t ":" -k 3 -n passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]#
Das Sortierergebnis zeigt den numerischen Wert in der dritten Spalte, der durch ":" von klein nach groß getrennt ist.
3.3 -r Parameter
Durch " : " getrennt, wählen Sie die dritte Spalte aus , die standardmäßig in umgekehrter Reihenfolge sortiert werden soll (dh: ACSII-Code) , wie unten gezeigt:
[root@localhost ~]# sort -t ":" -k 3 -r passwd-sort
mail:x:8:12
halt:x:7:5
shut:x:6:3
sync:x:5:9
laap:x:4:7
adfm:x:3:4
daen:x:2:2
oper:x:11:21
bion:x:1:1
root:x:0:0
[root@localhost ~]#
Beachten Sie die Zeile, in der sich "oper: x: 11: 21" befindet.
Trennen Sie durch " : " und wählen Sie die dritte Spalte aus , um sie in umgekehrter Reihenfolge nach Wert zu sortieren, wie unten gezeigt:
[root@localhost ~]# sort -t ":" -k 3 -r -n passwd-sort
oper:x:11:21
mail:x:8:12
halt:x:7:5
shut:x:6:3
sync:x:5:9
laap:x:4:7
adfm:x:3:4
daen:x:2:2
bion:x:1:1
root:x:0:0
[root@localhost ~]#
Nach dem Sortieren werden die durch ":" getrennten Werte in der dritten Spalte vom größten zum kleinsten sortiert.
3.3 -c Parameter
Stellen Sie fest, ob der Eingabeinhalt wie folgt sortiert wurde:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]# sort -c passwd-sort
sort:passwd-sort:2:无序: bion:x:1:1
[root@localhost ~]# sort -t ":" -k 3 -n -c passwd-sort
[root@localhost ~]#
Beginnen Sie mit der Überprüfung gemäß der Standardreihenfolge und zeigen Sie an, dass die zweite Zeile nicht in der richtigen Reihenfolge ist. Verwenden Sie dann " : " als Trennzeichen und wählen Sie die dritte Zeile aus, um zu überprüfen, ob sie sortiert ist oder nicht. Es erfolgt keine Ausgabe, was bedeutet, dass die Sortierung abgeschlossen ist.
3.4 -o Parameter
Geben Sie das Sortierergebnis der Sortierung wie unten gezeigt in die angegebene Datei aus:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]# sort -t ":" -k 3 passwd-sort -o passwd-sort-file
[root@localhost ~]# cat passwd-sort-file
root:x:0:0
bion:x:1:1
oper:x:11:21
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
[root@localhost ~]#
Sie können auch ">" verwenden, um die Sortierergebnisse der Sortierung in eine angegebene Datei auszugeben, wie unten gezeigt:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]# sort -t ":" -k 3 passwd-sort > passwd-sort-file1
[root@localhost ~]# cat passwd-sort-file1
root:x:0:0
bion:x:1:1
oper:x:11:21
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]#
Nachdem die Ausgabe sortiert wurde, bleibt der Inhalt der passwd-sort-Datei unverändert, und der Inhalt der passwd-sort-file1-Datei ist der sortierte Inhalt.
Hinweis: Sie können ">" nicht verwenden, um das Sortierergebnis in die Originaldatei auszugeben , wie unten gezeigt:
[root@localhost ~]# cat passwd-sort
root:x:0:0
bion:x:1:1
daen:x:2:2
adfm:x:3:4
laap:x:4:7
sync:x:5:9
shut:x:6:3
halt:x:7:5
mail:x:8:12
oper:x:11:21
[root@localhost ~]# sort -t ":" -k 3 passwd-sort > passwd-sort
[root@localhost ~]# cat passwd-sort
[root@localhost ~]#
Nach dem Umleiten zur Originaldatei über den Operator ">" ist der Inhalt der Originaldatei leer.
Viertens Zusammenfassung
Sortieren verwendet standardmäßig ASCII-Code zum Sortieren. Wenn Sie den Parameter -n hinzufügen müssen, um nach Wert zu sortieren, werden häufig die Parameter -t und -k verwendet. Wenn die Ausgabeumleitung nicht verwendet wird, wird der Inhalt der Originaldatei standardmäßig nicht geändert.
Fünf Referenzen
[1] https://man7.org/linux/man-pages/man1/sort.1.html