[linux] Wie man Linien in einem Dokument zählt?



Answers

Um alle Zeilen zu zählen, benutze:

$ wc -l file

So filtern und zählen Sie nur Linien mit Musterverwendung:

$ grep -w "pattern" -c file  

Oder benutze -v, um die Übereinstimmung zu invertieren:

$ grep -w "pattern" -c -v file 

Sehen Sie sich die grep man-Seite an, um sich die Argumente -e, -i und -x anzusehen ...

Question

Ich habe Zeilen wie diese, und ich 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?




es gibt viele Wege. mit wc ist eins.

wc -l file

andere schließen ein

awk 'END{print NR}' file

sed -n '$=' file (GNU sed)

grep -c ".*" file



Benutze wc :

wc -l <filename>



Oben sind die bevorzugte Methode aber "cat" -Befehl kann auch hilfreich sein:

cat -n <filename>

Zeigt den gesamten Inhalt der Datei mit Zeilennummern an.







Umleitung / Piping der Ausgabe der Datei an wc -l sollte wie folgt genügen:

cat /etc/fstab | wc -l

welches dann die Nr. liefern würde. nur Linien.




Wenn Sie nur die Anzahl der Zeilen (und nicht die Anzahl der Zeilen und der Name der blöden Datei) möchten,

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



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

Gibt nur die Anzahl der Zeilen zurück




Wie andere sagten, ist wc -l die beste Lösung, aber für zukünftige Referenz können Sie Perl verwenden:

perl -lne 'END { print $. }'

$. enthält Zeilennummer und END Block wird am Ende des Skripts ausgeführt.




Links