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

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

wc -l *.php 

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

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

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


当前回答

有一个叫做sloccount的小工具来计算目录中的代码行。

应该注意的是,它做的比你想要的更多,因为它忽略空行/注释,按编程语言分组结果,并计算一些统计数据。

其他回答

在Windows PowerShell上尝试以下操作:

dir -Recurse *.php | Get-Content | Measure-Object -Line

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

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

步骤如下:

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

如果您只需要PHP文件中的总行数,那么即使在安装了GnuWin32的Windows下,也可以使用非常简单的单行命令。这样地:

cat `/gnuwin32/bin/find.exe . -name *.php` | wc -l

您需要指定find.exe的确切位置,否则将执行Windows提供的find.exe(来自类似DOS的旧命令),因为它可能在环境PATH中的GnuWin32之前,并且具有不同的参数和结果。

请注意,在上面的命令中,应该使用反引号,而不是单引号。

还有一种变化:)

$ find . -name '*.php' | xargs cat | wc -l

这将给出总金额,而不是逐个文件。

添加在找到后使其工作。

使用Z shell(zsh)globs非常简单:

wc -l ./**/*.php

如果您正在使用Bash,则只需升级。绝对没有理由使用Bash。