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

So zeigen Sie bestimmte Zeilen einer Datei in der Linux-Befehlszeile an

Wie finde ich die n-te Zeile in einer Datei in der Linux-Befehlszeile? Wie zeige ich Zeilennummer x bis Zeilennummer y an?

Unter Linux gibt es mehrere Möglichkeiten, dasselbe Ergebnis zu erzielen. Das Drucken bestimmter Zeilen aus einer Datei ist keine Ausnahme.

Um die 13. Zeile anzuzeigen, können Sie eine Kombination aus Head und Tail verwenden:

head -13 file_name | tail +13

Oder Sie können den sed-Befehl verwenden:

sed -n '13p' file.txt

Um Zeilennummern von 20 bis 25 anzuzeigen, können Sie Head- und Tail-Befehle wie folgt kombinieren:

head -25 file_name | tail +20

Oder Sie können den sed-Befehl wie folgt verwenden:

sed -n '20,25p' lines.txt 

Eine detaillierte Erklärung jedes Befehls folgt als nächstes. Ich werde auch die Verwendung des awk-Befehls für diesen Zweck zeigen.

Zeigen Sie bestimmte Zeilen mit Head- und Tail-Befehlen an

Dies ist meine bevorzugte Art, Linien der Wahl anzuzeigen. Ich finde es einfacher zu merken und zu verwenden.

Verwenden Sie eine Kombination aus Head- und Tail-Befehl in der folgenden Funktion die Zeilennummer x:

head -x file_name | tail +x

Sie können x durch die Zeilennummer ersetzen, die Sie anzeigen möchten. Angenommen, Sie möchten die 13. Zeile der Datei anzeigen.

[email protected]:~$ head -13 lines.txt | tail +13
This is line number 13

Erklärung :Sie wissen wahrscheinlich bereits, dass der Head-Befehl die Zeilen einer Datei vom Anfang abruft, während der Tail-Befehl die Zeilen vom Ende abruft.

Der „head -x“-Teil des Befehls ruft die ersten x Zeilen der Dateien ab. Diese Ausgabe wird dann an den tail-Befehl umgeleitet. Der Befehl tail zeigt alle Zeilen beginnend mit Zeilennummer x an.

Ganz offensichtlich, wenn Sie 13 Zeilen von oben nehmen, werden die Zeilen von Nummer 13 bis zum Ende die 13. Zeile sein. Das ist die Logik hinter diesem Befehl.

Nehmen wir nun unsere Kombination aus Head- und Tail-Befehlen, um mehr als eine Zeile anzuzeigen.

Angenommen, Sie möchten alle Zeilen von x bis y anzeigen. Dazu gehören auch die x-ten und y-ten Zeilen:

head -y lines.txt | tail +x

Nehmen wir ein praktisches Beispiel. Angenommen, Sie möchten alle Zeilen von Zeile 20 bis 25 drucken:

[email protected]:~$ head -25 lines.txt | tail +20
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Verwenden Sie SED, um bestimmte Zeilen anzuzeigen

Der leistungsstarke Befehl sed bietet mehrere Möglichkeiten, bestimmte Zeilen zu drucken.

Um beispielsweise die 10. Zeile anzuzeigen, können Sie sed auf folgende Weise verwenden:

sed -n '10p' file.txt

Das -n unterdrückt die Ausgabe, während das p-Kommando bestimmte Zeilen druckt. Lesen Sie diesen ausführlichen SED-Leitfaden, um ihn im Detail kennenzulernen und zu verstehen.

Um alle Zeilen von Zeilennummer x bis Zeilennummer y anzuzeigen, verwenden Sie Folgendes:

[email protected]:~$ sed -n '3,7p' lines.txt 
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7

Verwenden Sie AWK, um bestimmte Zeilen aus einer Datei zu drucken

Der awk-Befehl mag kompliziert erscheinen und es gibt sicherlich eine Lernkurve. Aber wie sed ist auch awk ziemlich mächtig, wenn es darum geht, Dateiinhalte zu bearbeiten und zu manipulieren.

[email protected]:~$ awk 'NR==5' lines.txt 
This is line number 5

NR bezeichnet die 'aktuelle Datensatznummer'. Weitere Informationen finden Sie in unserem ausführlichen AWK-Befehlsleitfaden.

Um alle Zeilen von x bis y anzuzeigen, können Sie den awk-Befehl auf folgende Weise verwenden:

[email protected]:~$ awk 'NR>=20 && NR<=25' lines.txt 
This is line number 20
This is line number 21
This is line number 22
This is line number 23
This is line number 24
This is line number 25

Es folgt einer Syntax, die den meisten Programmiersprachen ähnlich ist.

Ich hoffe, dieser kurze Artikel hat Ihnen geholfen, bestimmte Zeilen einer Datei in der Linux-Befehlszeile anzuzeigen. Wenn Sie einen anderen Trick für diesen Zweck kennen, teilen Sie ihn uns im Kommentarbereich mit.


Linux
  1. Wie zeigt man mit dem Linux-Befehl „cat“ nur bestimmte Zeilen nach Nummer an?

  2. Löschen bestimmter Zeilen aus einer Datei in der Linux-Befehlszeile

  3. So zählen Sie die Anzahl der Zeilen in einer Datei unter Linux (wc- und nl-Befehlsbeispiele)

  4. Schneller Unix-Befehl zum Anzeigen bestimmter Zeilen in der Mitte einer Datei?

  5. Wie ersetze ich eine Datei im JAR durch die Befehlszeile in Linux?

Befehl Einfügen unter Linux (Zeilen zusammenführen)

So drucken Sie doppelte Zeilen in einer Textdatei unter Linux

So mischen Sie Zeilen in einer Datei unter Linux

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

So finden Sie die längste(n) Zeile(n) in einer Datei in Linux

So extrahieren Sie die Tar.xz-Datei in der Linux-Befehlszeile