Wie zähle ich, wie viele Zeilen sich in einer Textdatei befinden? z.B :
command file.txt
Hinweis: Ich möchte nur die nicht leeren Zeilen zählen (Zeilen ohne Leerzeichen und Tabulatoren).
command-line
user93097373
quelle
quelle
\r
) zählen oder überspringen möchte . Der Strom beantwortet alle Zählzeilen mit Leerzeichen und überspringt nur leere.\r
oder\n
), Zeilen mit Tabulatoren und Zeilen mit Leerzeichen) und möchte sie überspringen, wie ich denke und laut beantwortet Was ich verstanden habe.Antworten:
Die obige Antwort ist korrekt, aber etwas anders, Sie können den
grep
Code für einfachere wie zgrep -vc '^$' file.txt
Zum Beispiel (A): file.txt
Zum Beispiel (B): file.txt
Beachten Sie, dass das Ergebnis 4 ist! wenn wir nur zwei erwarten wollen. Dies zählt aber auch die Tabulatoren zwischen Inhalt und Kommentar.
Beachten Sie, dass die Zählungen von 0 und von 1 von grep bis sed unterschiedlich sind, da ich mich erinnere, dass ich für weitere Details nach grep oder sed suche.
quelle
sed
Option ist tatsächlich richtig, aber diegrep
ist nichtVersuchen Sie
sed
:Wenn Sie Zeilen haben, die nur Leerzeichen oder Tabulatoren enthalten, und diese beim Zählen ebenfalls ignorieren möchten:
quelle
^\s*$
auch Zeilen berücksichtigen, die nur Tabulatoren oder Leerzeichen enthalten.Verwenden von
grep
:quelle
Sie können verwenden:
Wenn Sie dazu einen Befehl benötigen, fügen Sie einfach die folgenden Zeilen in Ihre ein
.bashrc
und starten Sie Ihre Shell-Sitzung neu oder öffnen Sie ein neues Terminal:Beispiel:
quelle
Mit awk :
Erläuterung:
Das
NF
gibt die Gesamtzahl der Felder an und gibt daher nur nicht leere Zeilen aus , da in nicht leeren ZeilenNF
größer ist als0
und als wahr ausgewertet wird. So erhöhen Sie die Zählung Flag , wenn awk eine Nicht-Leerzeilen gefunden und druckt den neuesten Wert von Zählung Flagge am Ende durchEND{print count}
.quelle
Bearbeiten : Sie können einfach die
c
Option hinzufügen , um eine kompaktere Version zu erhalten,grep
anstatt alles anwc
@ murus Antwort weiterzuleitenMit
grep
:quelle
Perl-Lösung
Perl kann das. Im Allgemeinen funktioniert das Zählen von Zeilen folgendermaßen:
Wenn wir alle Leerzeilen ausschließen wollen, machen wir so etwas:
Nehmen wir an, wir haben eine Eingabedatei wie diese
Insgesamt gibt es 5 Zeilen, 2 Leerzeilen. Der Befehl, den wir haben, würde ausgeben:
Verbesserung mehrerer Dateien
Dies funktioniert gut für eine einzelne Datei. Wenn wir möchten, dass es mit mehreren Dateien funktioniert, können wir Folgendes tun:
quelle