Frage :Ich habe eine Datei auf meinem Linux-System mit vielen Zeilen. Wie zähle ich die Gesamtzahl der Zeilen in der Datei?
Mit „wc -l“
Es gibt mehrere Möglichkeiten, Zeilen in einer Datei zu zählen. Aber einer der einfachsten und am weitesten verbreiteten Wege ist die Verwendung von „wc -l“. Das Dienstprogramm wc zeigt die Anzahl der Zeilen, Wörter und Bytes an, die in jeder Eingabedatei oder Standardeingabe (wenn keine Datei angegeben ist) in der Standardausgabe enthalten sind.
Die Syntax lautet:
# wc -l [filename]
Betrachten Sie also die unten gezeigte Datei:
$ cat file01.txt this is a sample file with some sample data
1. Der Befehl „wc -l“, wenn er auf diese Datei ausgeführt wird, gibt die Zeilenanzahl zusammen mit dem Dateinamen aus.
$ wc -l file01.txt 5 file01.txt
2. Um den Dateinamen aus dem Ergebnis wegzulassen, verwenden Sie:
$ wc -l < file01.txt 5
3. Sie können die Befehlsausgabe jederzeit mit Pipe an den Befehl wc übergeben. Zum Beispiel:
$ cat file01.txt | wc -l 5
Sie können hier jeden Befehl anstelle von cat haben. Die Ausgabe von jedem Befehl kann an den Befehl wc geleitet werden, um die Zeilen in der Ausgabe zu zählen.
Mit awk
Wenn Sie awk verwenden möchten, um die Zeilenanzahl zu ermitteln, verwenden Sie den folgenden awk-Befehl:
$ awk 'END{print NR}' [filename]
Beispielausgabe:
$ awk 'END{print NR}' file01.txt 5
Mit sed
Verwenden Sie die folgende sed-Befehlssyntax, um die Zeilenanzahl mit GNU sed zu ermitteln:
$ sed -n '$=' [filename]
Beispielausgabe:
$ sed -n '$=' file01.txt 5
Grep verwenden
Unser guter alter Freund "grep" kann auch verwendet werden, um die Anzahl der Zeilen in einer Datei zu zählen. Diese Beispiele sollen Sie nur darüber informieren, dass es mehrere Möglichkeiten gibt, die Zeilen zu zählen, ohne "wc -l" zu verwenden. Aber wenn ich gefragt werde, werde ich immer "wc -l" anstelle dieser Optionen verwenden, da es viel zu leicht zu merken ist.
$ grep -c ".*" [filename]
Beispielausgabe:
$ grep -c ".*" file01.txt 5
Mit GNU grep können Sie die folgende grep-Syntax verwenden:
$ grep -Hc ".*" [filename]
Hier ist eine andere Version des grep-Befehls zum Ermitteln der Zeilenanzahl.
$ grep -c ^ file01.txt 5
Beispielausgabe:
$ grep -Hc ".*" file01.txt file01.txt:5
Einige weitere Befehle
Neben den obigen Befehlen ist es gut, einige selten verwendete Befehle zu kennen, um die Zeilenanzahl in einer Datei zu ermitteln.
1. Verwenden Sie den Befehl nl (Zeilennummerierungsfilter), um jede Zeile nummerieren zu lassen. Die Syntax für den Befehl lautet:
$ nl [filename]
Beispielausgabe:
$ nl file01.txt 1 this is a sample 2 file 3 with 4 some sample 5 data
Nicht so direkter Weg, um die Zeilenzahl zu erhalten. Aber Sie können awk oder sed verwenden, um die Anzahl der letzten Zeile zu erhalten. Zum Beispiel:
$ nl file01.txt | tail -1 | awk '{print $1}' 5
2. Sie können auch vi und vim mit dem Befehl „:set number“ verwenden, um die Nummer in jeder Zeile wie unten gezeigt festzulegen. Wenn die Datei sehr groß ist, können Sie mit "Shift+G" zur letzten Zeile gehen und die Zeilenanzahl abrufen.
3. Verwenden Sie den cat-Befehl mit -n wechseln, um jede Zeile nummeriert zu bekommen. Auch hier können Sie die Zeilenanzahl von der letzten Zeile abrufen.
$ cat -n file01.txt 1 this is a sample 2 file 3 with 4 some sample 5 data
$ cat -n file01.txt | tail -1 | awk '{print $1}' 5
4. Sie können auch Perl One Lines verwenden, um die Zeilenanzahl zu ermitteln:
$ perl -lne 'END { print $. }' file01.txt 5