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

So fügen Sie Textdateien unter Linux Zeilennummern hinzu

Haben Sie sich jemals gefragt, wie Sie der Standardausgabe von Textdateien Zeilennummern hinzufügen können? Diese kurze Anleitung erklärt, wie Sie einer bestimmten Textdatei Zeilennummern hinzufügen können. Es gibt mehrere Möglichkeiten, einer Datei Zeilennummern hinzuzufügen. Hier habe ich 6 verschiedene Methoden behandelt, um dies zu tun. Ich werde weitere Methoden hinzufügen, wenn ich in Zukunft auf welche stoße. Setzen Sie am besten ein Lesezeichen für diesen Leitfaden und kommen Sie später wieder, um zu sehen, ob es Ergänzungen gibt.

Methode 1 – Verwenden des Befehls „nl“

Der Befehl „nl“ dient dazu, Zeilennummern zu einer Datei hinzuzufügen. Es schreibt die angegebene Datei mit hinzugefügten Zeilennummern auf die Standardausgabe. Ich habe eine Datei namens file.txt mit folgendem Inhalt.

$ cat file.txt 
This is line1
This is line2
This is line3

This is line5


This is line8

Wie Sie in der obigen Ausgabe sehen, hat die Datei 8 Zeilen mit drei leeren Zeilen. Lassen Sie uns die Zeilennummern hinzufügen.

Führen Sie dazu Folgendes aus:

 $ nl file.txt
 1 This is line1
 2 This is line2
 3 This is line3
 
 4 This is line5
 
 
 5 This is line8

Der nl-Befehl berücksichtigt keine leeren Zeilen. Es werden nur die Zahlen zu nicht leeren Zeilen hinzugefügt. Wenn Sie alle Zeilen einschließlich der Leerzeilen nummerieren möchten, verwenden Sie -b kennzeichnen wie unten.

 $ nl -b a file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Außerdem können Sie nach den Zahlen ein Symbol/Sonderzeichen hinzufügen. Um beispielsweise einen Punkt (.) nach den Zahlen hinzuzufügen, führen Sie Folgendes aus:

 $ nl -s "." file.txt 
 1.This is line1
 2.This is line2
 3.This is line3
 
 4.This is line5
 
 
 5.This is line8

Möglicherweise möchten Sie die Breite der Ausgabe anpassen. Verwenden Sie dazu das Flag -w wie unten.

$ nl -w2 file.txt

Methode 2 - Verwendung des 'cat'-Befehls

Der cat-Befehl wird verwendet, um den Inhalt einer Datei anzuzeigen. Wenn Sie der Ausgabe einer Datei Zahlen hinzufügen möchten, verwenden Sie das Flag -n wie unten.

 $ cat -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Alternativ können Sie die Standardausgabe wie unten beschrieben an eine neue Datei übergeben.

$ cat -n file.txt > newfile.txt

Vielleicht möchten Sie auch die wiederholten leeren Zeilen loswerden.

 $ cat -s -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 This is line8

Methode 3 – Verwenden des Befehls „awk“

Um der Ausgabe einer Datei mit dem Befehl awk Zeilennummern hinzuzufügen, führen Sie Folgendes aus:

$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8

Wie Sie vielleicht bemerkt haben, habe ich im BEGIN-Parameter die Startnummer mit 1 zugewiesen. Sie können jede andere Startnummer Ihrer Wahl vergeben, zum Beispiel 5, wie unten gezeigt.

$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8

Verwenden Sie den folgenden Befehl, wenn Sie die Leerzeilen nicht berücksichtigen möchten:

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt

Wenn Sie der Meinung sind, dass die obigen Befehle etwas schwer zu merken sind, verwenden Sie stattdessen den folgenden Befehl.

$ awk '{ print FNR " " $0 }' file.txt 
1 This is line1
2 This is line2
3 This is line3
4 
5 This is line5
6 
7 
8 This is line8

Wenn Sie den Abstand zwischen Zahlen und Text vergrößern möchten, führen Sie Folgendes aus:

$ awk '{ print FNR "\t " $0 }' file.txt

Methode 4 – Verwenden des Befehls „sed“

Um einer Standardausgabe einer Datei mit dem Befehl sed Zeilennummern hinzuzufügen, führen Sie Folgendes aus:

$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3

5 This is line5


8 This is line8

Der Befehl sed hat eine coole Funktion, die mir am besten gefällt. Wir können ein N anzeigen Zeile aus einer Datei. Um beispielsweise die dritte Zeile in einer Datei anzuzeigen, führen Sie Folgendes aus:

$ sed -n 3p file.txt 
This is line3

Methode 5 – Verwenden des Befehls „weniger“

Um die Zeilennummer der Standardausgabe einer Datei mit dem Less-Befehl anzuzeigen, führen Sie Folgendes aus:

 $ less -N file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Methode 6 – Verwenden des Befehls „grep“

Der grep-Befehl kann verwendet werden, um nach einer Zeile zu suchen, die eine bestimmte Zeile enthält. Wenn Sie die Zeilennummern zu einer Zeile hinzufügen möchten, die einen bestimmten Buchstaben hat, zum Beispiel Zeile , ausführen:

$ grep -n "line" file.txt 
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8

Bitte beachten Sie, dass dieser Befehl nur die Zahlen zu den Zeilen hinzufügt, die die Suchzeichenfolge enthalten. Alles andere in der angegebenen Datei wird weggelassen.

Und das ist alles. Weitere Einzelheiten zu den obigen Befehlen finden Sie in den Manpages. Sie kennen nun die verschiedenen Methoden, Textdateien Zeilennummern hinzuzufügen. Ich hoffe, Sie finden das nützlich. Weitere gute Sachen folgen. Bleiben Sie dran!

Prost!


Linux
  1. So fügen Sie unter Linux Text an das Dateiende an

  2. So löschen Sie Dateien und Verzeichnisse in Linux über die Befehlszeile

  3. So teilen und kombinieren Sie Dateien von der Befehlszeile in Linux

  4. Erstellen Sie Dateien mithilfe der Befehlszeile in Linux

  5. 11 Linux diff3-Befehlsbeispiele (Vergleiche 3 Dateien Zeile für Zeile)

Wie man Textdateien unter Linux vergleicht und zusammenführt

So benennen Sie eine Datei (en) in Linux um

So teilen Sie eine große Datei in Teile bei bestimmten Zeilennummern auf

So fügen Sie Text am Anfang einer Datei in Linux hinzu

So finden Sie Dateien, die eine bestimmte Textzeichenfolge in Linux enthalten

So komprimieren Sie eine Datei unter Linux