计算项目中不包括某些文件夹或文件的总行数
-
14-11-2019 - |
题
使用命令:
wc -l + `find . -name \* -print`
您可以获取文件夹中所有文件的总行数。
但是想象一下,你有一些文件夹(例如库),你不想计算它们的行,因为你没有写它们。
那么,您将如何计算不包括某些文件夹的项目中的行?
解决方案
与 find
, ,你也可以"否定"匹配条件与 !
.例如,如果我想列出所有 .java
目录中的文件,不包括包含 Test
:
find . -name "*.java" ! -name "*Test*"
希望这有帮助!
编辑:
顺便说一句, -name
谓词仅过滤文件名。如果要过滤路径(因此可以过滤目录),请使用 -path
:
find . -path "*.java" ! -path "*Test*"
其他提示
cloc 每当我需要计算SRC代码线时一直是一位好朋友。使用2.6.29 Linux内核作为示例:
$ 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
--------------------------------------------------------------------------------
. 您可以通过使用正则表达式列出文件来始终排除它们, 例如,
*。txt将仅包含txt文件等...
不隶属于 StackOverflow