如何递归计算目录中的所有代码行?

我们有一个PHP应用程序,并且想要统计特定目录及其子目录下的所有代码行。 我们不需要忽视评论,因为我们只是想弄清楚一个概念。

wc -l *.php 

该命令在给定的目录中工作良好,但忽略子目录。 我认为这可能会起作用,但它正在返回74,这绝对不是这种情况...

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

在所有文件中输入正确的语法是什么?


尝试:

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

SLOCCount工具也可能有帮助。

它会为您指定的任何层次结构提供精确的源代码行数,以及一些附加统计数据。


对于另一个单线:

( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l

使用空格名称,只输出一个数字。


如果使用Bash(或ZSH)的新版本,它更简单:

wc -l **/*.php

在Bash shell中,这需要设置globstar选项,否则** glob-operator不是递归的。 要启用此设置,请发出

shopt -s globstar

为了使其成为永久的,将它添加到其中一个初始化文件( ~/.bashrc~/.bash_profile等)。

链接地址: http://www.djcxy.com/p/1679.html

上一篇: How to count all the lines of code in a directory recursively?

下一篇: How to escape single quotes within single quoted strings?