Ich habe solche Zeilen und möchte wissen, wie viele Zeilen ich tatsächlich habe ...
09:16:39 AM all 2.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 94.00
09:16:40 AM all 5.00 0.00 0.00 4.00 0.00 0.00 0.00 0.00 91.00
09:16:41 AM all 0.00 0.00 4.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:42 AM all 3.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 96.00
09:16:43 AM all 0.00 0.00 1.00 0.00 1.00 0.00 0.00 0.00 98.00
09:16:44 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
09:16:45 AM all 2.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 92.00
Gibt es eine Möglichkeit, sie alle mit Linux-Befehlen zu zählen?
Verwenden Sie wc
:
wc -l <filename>
Dies gibt die Anzahl der Zeilen in <filename>
aus:
$ wc -l /dir/file.txt
3272485 /dir/file.txt
Oder, um den <filename>
aus dem Ergebnis wegzulassen, verwenden Sie wc -l < <filename>
:
$ wc -l < /dir/file.txt
3272485
Sie können Daten auch an wc
weiterleiten:
$ cat /dir/file.txt | wc -l
3272485
$ curl yahoo.com --silent | wc -l
63
Um alle Zeilen zu zählen, verwenden Sie:
$ wc -l file
Um nur Zeilen mit Muster zu filtern und zu zählen, verwenden Sie:
$ grep -w "pattern" -c file
Oder verwenden Sie -v, um die Übereinstimmung umzukehren:
$ grep -w "pattern" -c -v file
Schauen Sie sich die grep-Manpage an, um einen Blick auf die Argumente -e, -i und -x zu werfen ...
wc -l <file.txt>
Oder
command | wc -l
es gibt viele Wege. using wc
ist eins.
wc -l file
andere schließen ein
awk 'END{print NR}' file
sed -n '$=' file
(GNU sed)
grep -c ".*" file
Das Tool wc
ist der "Wortzähler" in UNIX- und UNIX-ähnlichen Betriebssystemen. Sie können es auch zum Zählen von Zeilen in einer Datei verwenden, indem Sie die Option -l
hinzufügen, also wc -l foo
. zählt die Anzahl der Zeilen in foo
. Sie können die Ausgabe auch von einem Programm wie dem folgenden leiten: ls -l | wc -l
, das angibt, wie viele Dateien sich im aktuellen Verzeichnis befinden.
Wenn Sie die Gesamtzeile aller Dateien in einem Verzeichnis überprüfen möchten, können Sie find und wc verwenden:
find . -type f -exec wc -l {} +
Verwenden Sie wc
:
wc -l <filename>
Wenn Sie nur die Anzahl der Zeilen (und nicht die Anzahl der Zeilen und den dummen Dateinamen, der zurückkommt) wollen:
wc -l < /filepath/filename.ext
Wie bereits erwähnt, funktionieren diese auch (sind aber aus anderen Gründen unterlegen):
awk 'END{print NR}' file # not on all unixes
sed -n '$=' file # (GNU sed) also not on all unixes
grep -c ".*" file # overkill and probably also slower
Verwenden Sie nl
wie folgt:
nl filename
Aus man nl
:
Schreiben Sie jede DATEI unter Hinzufügung von Zeilennummern in die Standardausgabe. Ohne DATEI oder wenn DATEI - ist, Standardeingabe lesen.
Ich habe das benutzt:
cat myfile.txt | wc -l
Ich bevorzuge es der akzeptierten Antwort, da der Dateiname nicht gedruckt wird und Sie nicht awk
verwenden müssen, um dies zu beheben. Akzeptierte Antwort:
wc -l myfile.txt
Aber ich denke, das Beste ist die Antwort von GGB667:
wc -l < myfile.txt
Ich werde das wahrscheinlich von jetzt an benutzen. Es ist etwas kürzer als mein Weg. Ich setze meine alte Methode ein, falls es jemand vorzieht. Die Ausgabe ist bei diesen beiden Methoden identisch.
Ich habe diese Frage gesehen, als ich nach einer Möglichkeit gesucht habe, mehrere Dateizeilen zu zählen. Wenn Sie also mehrere Dateizeilen einer TXT-Datei zählen möchten, können Sie dies tun.
cat *.txt | wc -l
es läuft auch auf einer .txt Datei;)
Oben sind die bevorzugten Methoden aufgeführt, aber der Befehl "cat" kann auch hilfreich sein:
cat -n <filename>
Zeigt Ihnen den gesamten Inhalt der Datei mit Zeilennummern.
wc -l file.txt | cut -f3 -d" "
Gibt nur die Anzahl der Zeilen zurück
cat file.log | wc -l | grep -oE '\d+'
grep -oE '\d+'
: Um die Ziffern zurückzugeben nur _.Oder zählen Sie alle Zeilen in Unterverzeichnissen mit einem Dateinamenmuster (z. B. Protokolldateien mit Zeitstempeln im Dateinamen):
wc -l ./**/*_SuccessLog.csv
Die Ausgabe der Datei nach wc -l
umzuleiten/weiterzuleiten sollte wie folgt ausreichen:
cat /etc/fstab | wc -l
das würde dann die nr liefern. nur von Linien.
zählen Sie die Anzahl der Zeilen und speichern Sie das Ergebnis in einer Variablen. Verwenden Sie diesen Befehl:
count=$(wc -l < file.txt) echo "Number of lines: $count"
Ich weiß, das ist alt , aber immer noch: Zähle gefilterte Zeilen
Meine Datei sieht so aus:
Number of files sent
Company 1 file: foo.pdf OK
Company 1 file: foo.csv OK
Company 1 file: foo.msg OK
Company 2 file: foo.pdf OK
Company 2 file: foo.csv OK
Company 2 file: foo.msg Error
Company 3 file: foo.pdf OK
Company 3 file: foo.csv OK
Company 3 file: foo.msg Error
Company 4 file: foo.pdf OK
Company 4 file: foo.csv OK
Company 4 file: foo.msg Error
Wenn ich wissen möchte, wie viele Dateien gesendet werden, OK:
grep "OK" <filename> | wc -l
OR
grep -c "OK" filename
Ich habe gerade ein Programm dafür erstellt (mit node
)
npm install gimme-lines
gimme-lines verbose --exclude=node_modules,public,vendor --exclude_extensions=html
Wie andere bereits sagten, ist wc -l
die beste Lösung, aber als zukünftige Referenz können Sie Perl verwenden:
Perl -lne 'END { print $. }'
$.
enthält die Zeilennummer und der Block END
wird am Ende des Skripts ausgeführt.