GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sysadmin-Toolbox:Verwenden des Sortierbefehls zum Verarbeiten von Text in Linux

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. ]


Linux
  1. So verwenden Sie den Linux-Befehl sed

  2. So verwenden Sie den Linux-Grep-Befehl

  3. So verwenden Sie den Verlaufsbefehl unter Linux

  4. So verwenden Sie den id-Befehl unter Linux

  5. So verwenden Sie den Befehl „screen“ unter Linux

So verwenden Sie den Befehl uniq zum Verarbeiten von Listen in Linux

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

So verwenden Sie den RPM-Befehl unter Linux

So verwenden Sie den which-Befehl in Linux