Compter le nombre total de lignes dans un projet à l'exclusion de certains dossiers ou fichiers

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

Question

Utilisation de la commande:

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

Vous pouvez obtenir le nombre total de lignes de tous les fichiers dans un dossier.

Mais imaginez que vous avez des dossiers (par exemple les bibliothèques), que vous ne voulez pas compter leurs lignes parce que vous ne les avez pas écrites.

Alors, comment comptez-vous les lignes d'un projet à l'exclusion de certains dossiers?

Était-ce utile?

La solution

Avec find, vous pouvez également "nier" des conditions de correspondance avec !. Par exemple, si je veux répertorier tous les .java fichiers dans un répertoire, à l'exclusion de ceux qui contiennent Test:

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

J'espère que cela t'aides!

Éditer:

Au fait, le -name prédicat uniquement les noms de fichiers. Si vous souhaitez filtrer les chemins (afin que vous puissiez filtrer les répertoires), utilisez -path:

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

Autres conseils

lic a toujours été un grand ami chaque fois que j'ai besoin de compter les lignes du code SRC. Utilisation du noyau Linux 2.6.29 comme exemple:

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

Vous pouvez toujours les exclure en répertoriant les fichiers en utilisant des expressions régulières, par exemple,

* .txt n'inclura que des fichiers txt et ainsi de suite ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top