Pregunta

Usando el comando:

wc -l + `find . -name \* -print` 

Puede obtener el número total de líneas de todos los archivos dentro de una carpeta.

Pero imagina que tienes algunas carpetas (por ejemplo, bibliotecas) en las que no quieres contar sus líneas porque no las escribiste.

Entonces, ¿cómo contarías las líneas de un proyecto excluyendo determinadas carpetas?

¿Fue útil?

Solución

Con find, también puedes "negar" las condiciones coincidentes con !.Por ejemplo, si quiero enumerar todos los .java archivos en un directorio, excluyendo aquellos que contienen Test:

find . -name "*.java" ! -name "*Test*"

¡Espero que esto ayude!

Editar:

Por cierto, el -name El predicado solo filtra nombres de archivos.Si desea filtrar rutas (para poder filtrar directorios), utilice -path:

find . -path "*.java" ! -path "*Test*"

Otros consejos

CLOC siempre ha sido un gran amigo siempre que necesito contar líneas de código SRC.Usando 2.6.29 Linux Kernel como ejemplo:

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

Siempre podría excluirlos al listar los archivos utilizando expresiones regulares, por ejemplo,

*. TXT incluirá solo archivos TXT y así sucesivamente ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top