Odpowiedzi:
Jeśli Twoja wersja wc
i find
obsługuje niezbędne opcje:
find . -name pattern -print0 | wc -l --files0-from=-
co daje liczbę zliczeń na plik, jak również w sumie. Jeśli chcesz tylko całość:
find . -name pattern -print0 | wc -l --files0-from=- | tail -n 1
Inną opcją dla wersji find
tego wsparcia IT:
find . -name pattern -exec cat {} + | wc -l
Niestety wynik:
find . -iname "yourpattern" -exec cat '{}' \; |wc -l
wstawia dodatkowe linie. Aby uzyskać wiarygodną liczbę linii, należy:
find . -name "yourpattern" -print0 | xargs -0 wc -l
W ten sposób poprawnie obsługujesz spacje, uzyskujesz liczbę wierszy dla każdego pliku oraz całkowitą liczbę wierszy, szybciej i stylowo !!!
Kolejny łatwy sposób na znalezienie nie. linie w pliku:
wc -l filename
Przykład:
wc -l myfile.txt
Nie przetestowano, ale co powiesz na:
cat `find . -name "searchterm" -print` | wc -l
wc -l `find -name filename`
będzie działać wydajnie.