Conta il numero totale di linee in un progetto escludendo determinate cartelle o file
-
14-11-2019 - |
Domanda
Utilizzo del comando:
wc -l + `find . -name \* -print`
.
È possibile ottenere il numero totale di righe di tutti i file all'interno di una cartella.
Ma immagina di avere alcune cartelle (per esempio le librerie), che non vuoi contare le loro linee perché non le hai scritto.
Allora, come conteresti le righe in un progetto escludendo alcune cartelle?
Soluzione
Con find
, puoi anche "annullare" le condizioni corrispondenti con !
.Ad esempio, se voglio elencare tutti i file .java
in una directory, escludendo quelli contenenti Test
:
find . -name "*.java" ! -name "*Test*"
Spero che questo aiuti!
Modifica:
A proposito, il predicato -name
filtra solo i nomi dei file.Se si desidera filtrare i percorsi (in modo da poter filtrare le directory), utilizzare -path
:
find . -path "*.java" ! -path "*Test*"
Altri suggerimenti
Cloc è sempre stato un grande amico ogni volta che ho bisogno di contare le linee del codice SRC.Usando il kernel 2.6.29 Linux come esempio:
$ cloc .
26667 text files.
26357 unique files.
2782 files ignored.
http://cloc.sourceforge.net v 1.50 T=168.0 s (140.9 files/s, 58995.0 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
C 11435 1072207 1141803 5487594
C/C++ Header 10033 232559 368953 1256555
Assembly 1021 35605 41375 223098
make 1087 4802 5388 16542
Perl 25 1431 1648 7444
yacc 5 447 318 2962
Bourne Shell 50 464 1232 2922
C++ 1 205 58 1496
lex 5 222 246 1399
HTML 2 58 0 378
NAnt scripts 1 85 0 299
Python 3 62 77 277
Bourne Again Shell 4 55 22 265
Lisp 1 63 0 218
ASP 1 33 0 136
awk 2 14 7 98
sed 1 0 3 29
XSLT 1 0 1 7
--------------------------------------------------------------------------------
SUM: 23678 1348312 1561131 7001719
--------------------------------------------------------------------------------
. Potresti sempre escluderli elencando i file utilizzando le espressioni regolari, Ad esempio,
*. TXT includerà solo file TXT e così via ...