2012-04-02 14 views

Odpowiedz

8

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.

+0

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

Powiązane problemy