it-swarm.com.de

Wie zähle ich Zeilen in einem Dokument?

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?

944
Alucard

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
1790
user85509

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 ...

132
Lauro Oliveira
wc -l <file.txt>

Oder

command | wc -l
69
John Kugelman

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
42
ghostdog74

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.

25
theunamedguy

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 {} +
22
storen

Verwenden Sie wc:

wc -l <filename>
21
Vivin Paliath

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
14
ggb667

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.

8
decimal

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.

7
Buttle Butkus

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;)

5
talsibony

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.

5
Yogesh
wc -l file.txt | cut -f3 -d" "

Gibt nur die Anzahl der Zeilen zurück

4
Umur Kontacı
cat file.log | wc -l | grep -oE '\d+'
  • grep -oE '\d+': Um die Ziffern zurückzugeben nur _.
4
AechoLiu

Oder zählen Sie alle Zeilen in Unterverzeichnissen mit einem Dateinamenmuster (z. B. Protokolldateien mit Zeitstempeln im Dateinamen):

wc -l ./**/*_SuccessLog.csv
3
jwebuser

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.

3
tk3000

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"

2
Konstantin F

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

https://github.com/danschumann/gimme-lines/tree/master

1
Funkodebat

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.

1
Majid Azimi