Linux wc - Zliczanie linijek, słów, znaków występujących we wskazanych plikach
Dzisiejszy wpis będzie dotyczył prostego, acz ciekawego narzędzia dostępnego na systemach Linux - polecenia wc. Służy ono do zliczania linijek, słów, znaków, bajtów występujących we wskazanych plikach. Jest to bardzo przydatna komenda podczas tworzenia statystyk, więc warto wiedzieć o jej istnieniu i sposobie działania.
Co robi polecenie wc?
Jak już wspomnieliśmy, polecenie wc zlicza linijki, słowa itp. we wskazanych plikach. Zerknijmy od razu na przykładowe wywołanie tego polecenia:25 82 594 plik1.txt
Jak wydobyć tylko niektóre z tych informacji?
Oczywiście możemy ograniczyć zwracane wartości tylko do tych, które nas interesują. Zajrzyjmy więc do pomocy polecenia wc:-m, --chars print the character counts
-l, --lines print the newline counts
-w, --words wypisanie liczby słów
25 plik1.txt
82 plik1.txt
576 594 plik1.txt
Jak zliczać elementy dla wielu plików?
Jeśli interesuje nas najprostszy przypadek stworzenia statystyki wystąpień słów, czy linijek dla wielu plików znajdujących się w tym samym katalogu, wystarczy wydać polecenie:25 plik1.txt
31 plik2.txt
56 razem
25 plik1.txt
31 plik2.txt
56 razem
Jak zliczać linijki i słowa rekursywnie?
Nieco bardziej złożony jest przypadek, w którym chcemy policzyć linijki w plikach w sposób rekursywny, czyli również dla plików zawartych w podkatalogach wskazanej lokacji. Samo polecenie wc nie przewiduje takiego rozwiązania, dlatego trzeba posłużyć się również dodatkowym poleceniem, a nawet dwoma. Wykorzystamy polecenie find, które wyselekcjonuje nam odpowiednie pliki (Ubuntu/Debian - Wyszukiwanie plików na Linuksie) a także komendę xargs, o której również już dawniej wspominałem na łamach strony (xargs - Przesyłanie starnardowego wejścia jako parametry do programu).Wyobraźmy więc sobie, że mamy jakiś projekt aplikacji, np. webowej napisanej w PHP i chcemy policzyć linijki stworzonego przez nas kodu, przy czym pliki .php znajdują się w wielu podkatalogach projektu. W takiej sytuacji, polecenie, które zwróci nam liczbę linijek kodu, może wyglądać podobnie do poniższego:
194 /var/www/projektPHP/index.php
...
3321 razem

Komentarze (6)