Wie viele Zeilen sind in jeder Datei.
Verwenden Sie wc
ursprünglich für die Wortzählung, glaube ich, aber es kann Zeilen, Wörter, Zeichen, Bytes und die längste Zeilenlänge tun. Die -l
Option weist es an, Zeilen zu zählen.
wc -l <filename>
Dies gibt die Anzahl der Zeilen in:
$ wc -l /dir/file.txt
32724 /dir/file.txt
Sie können Daten auch an Folgendes weiterleiten wc
:
$ cat /dir/file.txt | wc -l
32724
$ curl google.com --silent | wc -l
63
Wie viele Zeilen sind im Verzeichnis.
Versuchen:
find . -name '*.pl' | xargs wc -l
Ein weiterer Einzeiler:
( find ./ -name '*.pl' -print0 | xargs -0 cat ) | wc -l
Übrigens zählt der wc
Befehl neue Zeilencodes, keine Zeilen. Wenn die letzte Zeile in der Datei nicht mit einem neuen Zeilencode endet, wird dies nicht gezählt.
Sie können grep -c ^ verwenden, vollständiges Beispiel:
#this example prints line count for all found files
total=0
find /path -type f -name "*.php" | while read FILE; do
#you see use grep instead wc ! for properly counting
count=$(grep -c ^ < "$FILE")
echo "$FILE has $count lines"
let total=total+count #in bash, you can convert this for another shell
done
echo TOTAL LINES COUNTED: $total
Wie viele Zeilen insgesamt
Ich bin mir nicht sicher, ob ich Ihre Anfrage richtig verstanden habe. Dies gibt beispielsweise Ergebnisse in folgendem Format aus, wobei die Anzahl der Zeilen für jede Datei angezeigt wird:
# wc -l `find /path/to/directory/ -type f`
103 /dir/a.php
378 /dir/b/c.xml
132 /dir/d/e.xml
613 total
Alternativ kann es sich als nützlich erweisen, nur die Gesamtzahl der Zeichen für neue Zeilen auszugeben, ohne dass die Anzahl der Dateien nach dem folgenden Befehl berechnet wird:
# find /path/to/directory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
613
Am wichtigsten ist, ich brauche dies in "lesbarem Format", z. 12.345.678 statt 12345678
Bash hat eine eingebaute printf- Funktion:
printf "%0.2f\n" $T
Wie immer gibt es viele verschiedene Methoden, mit denen die gleichen Ergebnisse erzielt werden können.