Jeśli używasz systemu UNIX, skorzystam z narzędzia wc
. Zwykle używam wc -l *.coffee */*.coffee etc.
, ponieważ jest łatwy do zapamiętania. Jednak rekurencyjna wersja byłaby
wc -l `find <proj-dir> -type f | grep \.coffee$`
który uruchamia find command
, która rekurencyjnie listą plików typu f
lub normalnych plików zasilają one grep
, która filtruje w dół do zaledwie plików coffeescript, a wyjście to jest używany jako argumenty linii poleceń do wc
(-l
sygnalizuje liczbę linii).
Edycja: Teraz nie chcemy liczyć linii pustych ani komentarzy (tutaj przechwytywane są tylko komentarze w jednym wierszu). Tracimy zliczenia na pliku, ale tu idzie:
cat `find <proj-dir> -type f | grep \.coffee$` | sed '/^\s*#/d;/^\s*$/d' | wc -l
możemy znaleźć pliki coffeescript, a następnie cat
im. Następnie sed
usuwa linie składające się tylko z białych znaków lub białych znaków, po których następuje #
. Wreszcie nasz przyjaciel wc
zlicza pozostałe linie.
To jest świetne! Ale żeby być wybrednym: czy istnieje szansa na rozwiązanie, które pominie puste linie i linie rozpoczynające się od "#" dla __source__ linii kodu? Nie sądzę, żebym używał komentarza blokowego w dowolnym miejscu w moim kodzie (###), więc byłoby to wszystko, czego potrzebuję. – Mitch