Die sort
Der Befehl wird unter Linux verwendet, um die Ausgabe einer Datei in der angegebenen Reihenfolge zu drucken. Dieser Befehl verarbeitet Ihre Daten (den Inhalt der Datei oder die Ausgabe eines beliebigen Befehls) und ordnet sie auf die angegebene Weise neu an, was uns hilft, die Daten effizient zu lesen. Es ist sehr nützlich, wenn große Mengen an Informationen verfügbar sind und in alphabetischer oder aufsteigender oder absteigender numerischer Reihenfolge angeordnet werden müssen.
Bei der alphabetischen Sortierung überprüft der Befehl den ersten Buchstaben jeder Zeile und verschiebt die Zeilen nach oben oder unten, um jede Zeile in alphabetischer Reihenfolge anzuordnen.
Bei der numerischen Sortierung überprüft der Befehl die Zahlen in jeder Zeile und ordnet die Zeilen in aufsteigender oder absteigender Reihenfolge an. Diese Organisation zeigt oben in Ihrer Ausgabe eine kleinere Zahl an. Es gibt einen sehr kleinen Unterschied in sort
und grep
Befehl. Die sort
Der Befehl ordnet Daten alphabetisch oder numerisch in aufsteigender oder absteigender Reihenfolge an. Das grep
Befehl zeigt oder verbirgt nur die gewünschten Informationen.
Kurz gesagt, sort
ist ein nützlicher Befehl, wenn Sie eine große Datei oder Liste lesen müssen, die nicht richtig angeordnet ist, und es schwierig und zeitaufwändig geworden ist, diese Dateien zu lesen. Um dieses Problem zu lösen, verwenden Sie den sort
Befehl in Linux, um den Inhalt von Dateien oder Listen im erforderlichen Format zu organisieren, was beim Lesen der erforderlichen Inhalte hilfreich sein kann. Die sort
Der Befehl geht davon aus, dass die Daten im ASCII-Format vorliegen. Es gibt einige nützliche Optionen für sort
was das Verhalten der Ausgabe ändern kann. Einige der Beispiele sind unten angegeben, zusammen mit der Syntax des Befehls.
Syntax
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
Beispiele
Im ersten Beispiel verwenden wir den sort
Befehl ohne Optionen. Dadurch wird jede Zeile in alphabetischer Reihenfolge organisiert, indem der erste Buchstabe jeder Zeile berücksichtigt wird. Hinweis:Zeilen, die mit einem Kleinbuchstaben beginnen, erscheinen vor Zeilen, die mit einem Großbuchstaben beginnen. Deshalb b (Kleinbuchstaben) steht an erster Stelle und B (Großbuchstaben) steht an zweiter Stelle.
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Budhha
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Manchmal benötigen wir Daten in umgekehrter Reihenfolge, d. h. das Gegenteil der alphabetischen Reihenfolge. Dies wird durch die Verwendung von -r
erreicht Option, wie unten zu sehen:
$ sort test.txt
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -r test.txt
Ramaai
MahatmaJyotibaPhule
Dr.B.R.Ambedkar
ChatrapatiShahuMaharaj
Budhha
budhha
Wie bei der Buchstabensortierung können wir sort
auch zahlenmäßig. Option -n
organisiert die Zahlen und kehrt Ihre Ergebnisse mit -r
um Möglichkeit. Unten mit dem -n
Option haben wir die Nummern in aufsteigender Reihenfolge angeordnet. Daher steht die kleinste Zahl oben und die größte Zahl unten. Wir können die Ausgabe auch umkehren, indem wir die gleiche obige Option -r
verwenden mit -n
und die größte Zahl oben anzeigen.
$ cat numeric.txt
14
04
34
1891
938
378
2356
$ sort -n numeric.txt
04
14
34
378
938
1891
2356
$ sort -nr numeric.txt
2356
1891
938
378
34
14
04
Sie können sort
auch die spezifische Spalte. Zum sort
eine bestimmte Spalte verwenden Sie den -k
Option zusammen mit einer Spaltennummer. Bitte beachten Sie, dass wir im folgenden Beispiel nur den -k
verwendet haben Option zur Auswahl der Spalte, also die sort
Der Befehl ordnet Daten an, indem er die erste Ziffer der zweiten Spalte berücksichtigt, nicht die ganze Zahl der zweiten Spalte. Also die Zeile mit der Ziffer 278 wird vor der Zeile mit der Ziffer 28 angezeigt . Wenn wir das -n
verwenden Option mit -k
(für die Spaltenauswahl), dann werden die Daten in aufsteigender Reihenfolge angezeigt, und die Reihenfolge ist von der kleinsten zur größten Zahl (was im zweiten Beispiel behandelt wurde):
$ cat file2.txt
Advika 1
Amit 30
Ajit 28
Abhi 278
Chirag 2
$ sort -k 2 file2.txt
Advika 1
Chirag 2
Abhi 278
Ajit 28
Amit 30
Hier verwenden wir Spaltennummer und numerische Sortierung zusammen. Im folgenden Beispiel sortieren wir die fünfte Spalte numerisch aufsteigend.
$ ls -l
total 0
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
$ ls -l | sort -nk 5
total 0
-rw-r--r-- 1 amwaghma hpcapp 27 Aug 20 19:20 numeric.txt
-rw-r--r-- 1 amwaghma hpcapp 31 Aug 20 19:51 months.txt
-rw-r--r-- 1 amwaghma hpcapp 42 Aug 20 19:30 file2.txt
-rw-r--r-- 1 amwaghma hpcapp 73 Aug 20 19:49 test.txt
Oft gibt es viele doppelte Einträge in einigen Zeilen. Diese können mit -u
eliminiert werden Möglichkeit. Im folgenden Beispiel zeigen wir das Verhalten des -u
Option zum Entfernen der doppelten Einträge:
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
budhha
Ramaai
Dr.B.R.Ambedkar
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -u test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Es gibt eine interessante Option, mit der wir überprüfen können, ob die Datei sortiert ist oder nicht. Mit dem -c
Option, die sort
Der Befehl meldet die erste falsch platzierte Zeile. Wenn die vorhandene Datei bereits sortiert ist, dann sort
gibt keine Ausgabe. Es prüft nacheinander jede Zeile, und wenn es eine nicht sortierte Zeile findet, gibt es eine Nachricht aus. Im Beispiel unten ist das -c
Option der sort
Befehl hilft, jede Zeile zu überprüfen. Beim ersten Versuch vergleicht es den ersten Buchstaben der ersten beiden Zeilen, was es für richtig hält, d. h. Buchstabe D und Buchstabe M sind alphabetisch geordnet. Beim zweiten Versuch untersucht es den Anfangsbuchstaben der dritten Zeile mit dem Anfangsbuchstaben der ersten beiden Zeilen und stellt fest, dass die dritte Zeile nicht alphabetisch angeordnet ist. Daher wird die erste nicht übereinstimmende Zeile der Datei mit der Zeilennummer gedruckt.
$ cat test.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
$ sort test.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
$ sort -c test.txt
sort: test.txt:3: disorder: ChatrapatiShahuMaharaj
Genauso wie Daten oder Zahlenanordnungen können wir auch die Monate in der Datei anordnen. Verwenden Sie dazu das -M
Option und kehren Sie die Reihenfolge mit -r
um Option.
$ cat months.txt
February
December
January
July
$ sort -M months.txt
January
February
July
December
$ sort -Mr months.txt
December
July
February
January
Wir können auch mehr als eine Datei gleichzeitig sortieren, indem wir die jeweiligen Dateinamen als Argumente verwenden, die durch ein Leerzeichen getrennt sind. Die Ausgabe wird nacheinander gedruckt. Unten habe ich das -n
verwendet Option zum Sortieren der zweiten numerischen Datei.
$ cat test.txt numeric.txt
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
ChatrapatiShahuMaharaj
budhha
Ramaai
14
04
34
1891
938
378
2356
$ sort test.txt -n numeric.txt
budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
04
14
34
378
938
1891
2356
Sie können die sortierte Ausgabe auch in eine andere Datei umleiten, indem Sie -o
verwenden Möglichkeit:
$ sort test.txt > sortfile
OR
$ sort -o sortfile test.txt
$ cat sortfile
budhha
Budhha
ChatrapatiShahuMaharaj
Dr.B.R.Ambedkar
MahatmaJyotibaPhule
Ramaai
Abschluss
Mit den obigen Optionen sehen wir, dass das Sortieren mit Dateiinhalten oder der Ausgabe eines beliebigen Befehls erfolgen kann. Es macht es einfach, große Datensätze in aufsteigender oder absteigender Reihenfolge anzuordnen. Es gibt so viele Optionen, mit denen wir die Daten auf alle möglichen Arten neu anordnen können. Das Erstaunlichste ist, dass wir keine Änderungen an der Originaldatei vorgenommen haben. Daher sind unsere Daten sicher.
[ Kostenloser Download:Spickzettel für fortgeschrittene Linux-Befehle. ]