我们有一个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
其他回答
不同之处:
wc -l `tree -if --noreport | grep -e'\.php$'`
这很好,但您需要在当前文件夹或其子文件夹中至少有一个*.php文件,否则wc会停止。
如果使用相当新的Bash(或ZSH)版本,则要简单得多:
wc -l **/*.php
在Bash shell中,这需要设置globstar选项,否则**glob运算符不是递归的。要启用此设置,请发出
shopt -s globstar
要使其永久化,请将其添加到一个初始化文件(~/.bashrc、~/.bah_profile等)中。
在Windows PowerShell上尝试以下操作:
dir -Recurse *.php | Get-Content | Measure-Object -Line
虽然我喜欢这些脚本,但我更喜欢这个脚本,因为它还显示了每个文件的摘要,只要总计:
wc -l `find . -name "*.php"`
如果你使用的是Linux(我认为你是),我推荐我的工具polyglot。它比sloccount或cloc都快得多,而且比sloccount更具特色。
您可以使用
poly .
or
poly
因此,它比一些复杂的Bash脚本更加用户友好。