我们有一个PHP应用程序,并希望计算特定目录及其子目录下的所有代码行。
我们不需要忽略评论,因为我们只是想得到一个粗略的想法。
wc -l *.php 该命令对于给定的目录非常有效,但它忽略了子目录。我认为下面的注释可能会起作用,但它返回74,这肯定不是这样的……
find . -name '*.php' | wc -l重新输入目录中的所有文件的正确语法是什么?
发布于 2009-08-31 17:50:12
尝试:
find . -name '*.php' | xargs wc -l或(当文件名包含特殊字符时,如空格)
find . -name '*.php' | sed 's/.*/"&"/' | xargs wc -l也可能会有所帮助。
它将为您所指向的任何层次结构提供准确的源代码行数,以及一些额外的统计数据。
排序输出:
find . -name '*.php' | xargs wc -l | sort -nr
发布于 2009-08-31 20:26:10
对于另一行代码:
( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l它适用于带有空格的名称,并且只输出一个数字。
发布于 2013-02-04 23:11:05
如果使用较新版本的Bash (或ZSH),就会简单得多:
wc -l **/*.php在Bash shell中,这需要设置globstar选项,否则**全局运算符就不是递归的。要启用此设置,请发出
shopt -s globstar要使其永久存在,请将其添加到其中一个初始化文件(~/.bashrc、~/.bash_profile等)中。
https://stackoverflow.com/questions/1358540
复制相似问题