我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
当前回答
如果您想保持简单,请去掉中间人,只需使用所有文件名调用wc:
wc -l `find . -name "*.php"`
或者用现代语法:
wc -l $(find . -name "*.php")
只要任何目录名或文件名中没有空格,这就可以工作。只要您没有数以万计的文件(现代shell支持非常长的命令行)。您的项目有74个文件,因此您有足够的空间进行扩展。
其他回答
还有一种变化:)
$ find . -name '*.php' | xargs cat | wc -l
这将给出总金额,而不是逐个文件。
添加在找到后使其工作。
在类Unix系统上,有一个叫做cloc的工具,它提供代码统计信息。
我在我们的代码库中的一个随机目录中运行,它显示:
59 text files.
56 unique files.
5 files ignored.
http://cloc.sourceforge.net v 1.53 T=0.5 s (108.0 files/s, 50180.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 36 3060 1431 16359
C/C++ Header 16 689 393 3032
make 1 17 9 54
Teamcenter def 1 10 0 36
-------------------------------------------------------------------------------
SUM: 54 3776 1833 19481
-------------------------------------------------------------------------------
对于另一个衬垫:
( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l
它处理带有空格的名称,只输出一个数字。
Try:
find . -name '*.php' | xargs wc -l
或(当文件名包含特殊字符(如空格)时)
find . -name '*.php' | sed 's/.*/"&"/' | xargs wc -l
SLOCCount工具也可能有帮助。
它将提供准确的源代码行计数你指向的层次结构,以及一些额外的统计数据。
排序输出:
查找-名称“*.php”| xargs wc-l | sort-nr
如果您使用窗口,请执行以下两个步骤:
安装cloc,例如为admin打开cmd并编写下一个代码=>choco安装cloc然后在项目文件夹中使用cd或openterminal并编写下一个代码=>cloc项目示例
步骤如下:
p.s.需要使用生成项目和node_modules移动或删除文件夹