2012-04-02 6 views

risposta

8

Se si utilizza UNIX, utilizzare lo strumento wc. Di solito uso wc -l *.coffee */*.coffee etc. perché è facile da ricordare. Tuttavia, una versione ricorsiva sarebbe

wc -l `find <proj-dir> -type f | grep \.coffee$` 

che gestisce il find command, che elenca in modo ricorsivo i file di tipo f, o file normali, immessa nella grep, che filtra verso il basso per solo i file CoffeeScript, e l'uscita di questo è utilizzato come argomento della riga di comando su wc (-l segnala un conteggio riga).

Modifica: Ora non vogliamo contare le righe vuote o di commenti (stiamo solo osservando i commenti a riga singola qui). Perdiamo i conteggi per file, ma qui va:

cat `find <proj-dir> -type f | grep \.coffee$` | sed '/^\s*#/d;/^\s*$/d' | wc -l 

Troviamo i file CoffeeScript, e poi li cat. Quindi, sed elimina righe che includono solo spazi bianchi o spazi bianchi seguiti da uno #. Infine, il nostro amico wc conta le righe rimanenti.

+0

Questo è fantastico! Ma solo per essere pignoli: c'è qualche possibilità di una soluzione che ometterà righe e righe vuote che iniziano con "#" per righe di codice __source__? Non penso di usare il commento di blocco in nessuna parte del mio codice (###) in modo che sia tutto ciò di cui ho bisogno. – Mitch

Problemi correlati