计算项目中不包括某些文件夹或文件的总行数

发布于 2024-11-07 07:53:33 字数 178 浏览 7 评论 0原文

使用命令:

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

可以获得文件夹内所有文件的总行数。

但是想象一下您有一些文件夹(例如库),您不想计算它们的行数,因为您没有编写它们。

那么,如何计算项目中排除某些文件夹的行数呢?

Using the command:

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

You can get the total number of lines of all files inside a folder.

But imagine you have some folders (for example libraries), which you don't want to count their lines because you didn't write them.

So, how would you count the lines in a project excluding certain folders?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

羁〃客ぐ 2024-11-14 07:53:33

每当我需要计算源代码行数时, cloc 一直是我的好朋友。以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
--------------------------------------------------------------------------------

cloc has always been a great friend whenever I need to count lines of src-code. Using 2.6.29 linux kernel as an example:

$ 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
--------------------------------------------------------------------------------
南笙 2024-11-14 07:53:33

使用find,您还可以使用!“否定”匹配条件。例如,如果我想列出目录中的所有 .java 文件,不包括包含 Test 的文件:

find 。 -名称“*.java”! -name "*Test*"

希望这有帮助!

编辑:

顺便说一句, -name 谓词仅过滤文件名。如果您想过滤路径(以便可以过滤目录),请使用 -path:

find 。 -路径“*.java”! -路径“*测试*”

With find, you can also "negate" matching conditions with !. For example, if I want to list all the .java files in a directory, excluding those containing Test:

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

Hope this helps!

Edit:

By the way, the -name predicate only filters file names. If you want to filter paths (so you can filter directories), use -path:

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

鸩远一方 2024-11-14 07:53:33

您始终可以通过使用正则表达式列出文件来排除它们,
例如,

*.txt 将仅包含 txt 文件等等...

you could always exclude them by listing out the files using regular expressions,
for example,

*.txt will include only txt files and so on...

始于初秋 2024-11-14 07:53:33

我专门为此用途制作了一个 NPM 包,它允许您调用 CLI 工具并提供目录路径和文件夹/文件以忽略

它,如下所示:

npm i -g @quasimodo147/countlines

到在终端中输入 $ countlines 命令

即可
计数线。 node_modules构建分布

I made an NPM package specifically for this usage, which allows you to call a CLI tool and providing the directory path and the folders/files to ignore

it goes like:

npm i -g @quasimodo147/countlines

to get the $ countlines command in your terminal

then you can do
countlines . node_modules build dist

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文