A contagem total do número de linhas em um projeto, excluindo determinadas pastas ou arquivos

StackOverflow https://stackoverflow.com/questions/6016608

Pergunta

Usando o comando:

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

Você pode obter o número total de linhas de todos os arquivos dentro de uma pasta.

Mas imagine que você tem algumas pastas (por exemplo bibliotecas), o que você não quer contar as suas linhas, porque você não escreve.

Então, como você contar as linhas de um projeto de exclusão de determinadas pastas?

Foi útil?

Solução

Com find, você também pode "negar" a correspondência de condições com !.Por exemplo, se eu quiser listar todas as .java arquivos em um diretório, a exclusão daqueles que contém Test:

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

Espero que isso ajude!

Editar:

Pelo jeito, a -name predicado somente filtros de nomes de arquivo.Se você deseja filtrar os caminhos (assim você pode filtrar diretórios), utilização -path:

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

Outras dicas

o colf sempre foi um grande amigo, sempre que eu precisar de contagem de linhas de src-código.Usando 2.6.29 kernel linux, como um exemplo:

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

você sempre pode excluí-los, listando os arquivos usando expressões regulares, por exemplo,

*.txt irá incluir apenas os arquivos txt e assim por diante...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top