我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
当前回答
如果文件太多,最好只查找总行数。
find . -name '*.php' | xargs wc -l | grep -i ' total' | awk '{print $1}'
其他回答
$cd directory
$wc -l* | sort -nr
您没有指定有多少个文件或所需的输出。
这可能是您想要的:
find . -name '*.php' | xargs wc -l
如果使用相当新的Bash(或ZSH)版本,则要简单得多:
wc -l **/*.php
在Bash shell中,这需要设置globstar选项,否则**glob运算符不是递归的。要启用此设置,请发出
shopt -s globstar
要使其永久化,请将其添加到一个初始化文件(~/.bashrc、~/.bah_profile等)中。
Try:
find . -name '*.php' | xargs wc -l
或(当文件名包含特殊字符(如空格)时)
find . -name '*.php' | sed 's/.*/"&"/' | xargs wc -l
SLOCCount工具也可能有帮助。
它将提供准确的源代码行计数你指向的层次结构,以及一些额外的统计数据。
排序输出:
查找-名称“*.php”| xargs wc-l | sort-nr
如果文件太多,最好只查找总行数。
find . -name '*.php' | xargs wc -l | grep -i ' total' | awk '{print $1}'