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?

È stato utile?

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 ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top