Ich führe a aus find . -name pattern
, um einige Dateien zu finden, und ich möchte die Gesamtzahl der Zeilen in diesen Dateien elegant ermitteln.
Wie kann ich das erreichen?
Wenn Ihre Version die erforderlichen Optionen unterstützt wc
und find
unterstützt:
find . -name pattern -print0 | wc -l --files0-from=-
Dies gibt Ihnen die Anzahl der Dateien sowie die Gesamtzahl. Wenn Sie nur die Summe wollen:
find . -name pattern -print0 | wc -l --files0-from=- | tail -n 1
Eine weitere Option für Versionen find
, die dies unterstützen:
find . -name pattern -exec cat {} + | wc -l
$ find . -name '*.txt' -exec cat '{}' \; | wc -l
Nimmt jede Datei und cat
s es, leitet dann alles durch, wc
um in den Zeilenzählmodus zu wechseln.
Oder [ungetesteter] seltsamer Dateiname sicher:
$ find . -name '*.txt' -print0 | xargs -0 cat | wc -l
Leider ist die Ausgabe von:
find . -iname "yourpattern" -exec cat '{}' \; |wc -l
fügt zusätzliche Zeilen ein. Um eine zuverlässige Zeilenanzahl zu erhalten, sollten Sie Folgendes tun:
find . -name "yourpattern" -print0 | xargs -0 wc -l
Auf diese Weise können Sie Leerzeichen korrekt behandeln, eine Zeilenanzahl für jede Datei und die Gesamtzeilenanzahl schneller und stilvoller erhalten !!!
Ein weiterer einfacher Weg, um nein zu finden. Zeilen in einer Datei:
Beispiel:
quelle
Ungetestet, aber wie wäre es mit so etwas wie:
quelle
wird effizient arbeiten.
quelle