我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
当前回答
在Windows PowerShell上尝试以下操作:
dir -Recurse *.php | Get-Content | Measure-Object -Line
其他回答
在Windows PowerShell上尝试以下操作:
dir -Recurse *.php | Get-Content | Measure-Object -Line
还有一种变化:)
$ find . -name '*.php' | xargs cat | wc -l
这将给出总金额,而不是逐个文件。
添加在找到后使其工作。
您可以使用名为codel(link)的实用程序。这是一个简单的Python模块,可以用彩色格式计算行数。
安装
pip install codel
用法
要计算C++文件的行数(扩展名为.cpp和.h),请使用:
codel count -e .cpp .h
您也可以忽略一些.gitignore格式的文件/文件夹:
codel count -e .py -i tests/**
它将忽略测试/文件夹中的所有文件。
输出如下所示:
您还可以使用-s标志缩短输出。它将隐藏每个文件的信息,只显示每个扩展名的信息。示例如下:
如果你使用的是Linux(我认为你是),我推荐我的工具polyglot。它比sloccount或cloc都快得多,而且比sloccount更具特色。
您可以使用
poly .
or
poly
因此,它比一些复杂的Bash脚本更加用户友好。
我还可以添加另一个OS X条目,这个条目使用普通的旧find with exec(我更喜欢使用xargs,因为我在过去看到过使用xarg的非常大的查找结果集的奇怪结果)。
因为这是针对OS X的,所以我还将过滤添加到.h或.m文件中—确保将所有文件复制到最后!
find ./ -type f -name "*.[mh]" -exec wc -l {} \; | sed -e 's/[ ]*//g' | cut -d"." -f1 | paste -sd+ - | bc