我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。

我们不需要忽视评论,因为我们只是想得到一个粗略的想法。

wc -l *.php 

该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。

find . -name '*.php' | wc -l

重新输入目录中所有文件的正确语法是什么?


当前回答

工具Tokei显示目录中代码的统计信息。Tokei将显示文件的数量、文件中的总行数以及按语言分组的代码、注释和空格。Tokei也可在Mac、Linux和Windows上使用。

Tokei的输出示例如下:

$ tokei
-------------------------------------------------------------------------------
 Language            Files        Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 CSS                     2           12           12            0            0
 JavaScript              1          435          404            0           31
 JSON                    3          178          178            0            0
 Markdown                1            9            9            0            0
 Rust                   10          408          259           84           65
 TOML                    3           69           41           17           11
 YAML                    1           30           25            0            5
-------------------------------------------------------------------------------
 Total                  21         1141          928          101          112
-------------------------------------------------------------------------------

可以按照存储库中README文件的说明安装Tokei。

其他回答

$cd directory
$wc -l* | sort -nr

非常简单:

find /path -type f -name "*.php" | while read FILE
do
    count=$(wc -l < $FILE)
    echo "$FILE has $count lines"
done

虽然我喜欢这些脚本,但我更喜欢这个脚本,因为它还显示了每个文件的摘要,只要总计:

wc -l `find . -name "*.php"`

如果您使用窗口,请执行以下两个步骤:

安装cloc,例如为admin打开cmd并编写下一个代码=>choco安装cloc然后在项目文件夹中使用cd或openterminal并编写下一个代码=>cloc项目示例

步骤如下:

p.s.需要使用生成项目和node_modules移动或删除文件夹

您可以使用名为codel(link)的实用程序。这是一个简单的Python模块,可以用彩色格式计算行数。

安装

pip install codel

用法

要计算C++文件的行数(扩展名为.cpp和.h),请使用:

codel count -e .cpp .h

您也可以忽略一些.gitignore格式的文件/文件夹:

codel count -e .py -i tests/**

它将忽略测试/文件夹中的所有文件。

输出如下所示:

您还可以使用-s标志缩短输出。它将隐藏每个文件的信息,只显示每个扩展名的信息。示例如下: