我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
我们有一个PHP应用程序,希望统计特定目录及其子目录下的所有代码行。
我们不需要忽视评论,因为我们只是想得到一个粗略的想法。
wc -l *.php
该命令对于给定的目录非常有效,但它忽略了子目录。我想下面的评论可能有用,但它返回了74,这绝对不是这样。。。
find . -name '*.php' | wc -l
重新输入目录中所有文件的正确语法是什么?
当前回答
如果您使用窗口,请执行以下两个步骤:
安装cloc,例如为admin打开cmd并编写下一个代码=>choco安装cloc然后在项目文件夹中使用cd或openterminal并编写下一个代码=>cloc项目示例
步骤如下:
p.s.需要使用生成项目和node_modules移动或删除文件夹
其他回答
如果您只需要PHP文件中的总行数,那么即使在安装了GnuWin32的Windows下,也可以使用非常简单的单行命令。这样地:
cat `/gnuwin32/bin/find.exe . -name *.php` | wc -l
您需要指定find.exe的确切位置,否则将执行Windows提供的find.exe(来自类似DOS的旧命令),因为它可能在环境PATH中的GnuWin32之前,并且具有不同的参数和结果。
请注意,在上面的命令中,应该使用反引号,而不是单引号。
我知道这个问题被标记为bash,但您试图解决的问题似乎也与PHP有关。
塞巴斯蒂安·伯格曼(Sebastian Bergmann)编写了一个名为PHPLOC的工具,它可以满足您的需求,并为您提供项目复杂性的概述。这是其报告的一个例子:
Size
Lines of Code (LOC) 29047
Comment Lines of Code (CLOC) 14022 (48.27%)
Non-Comment Lines of Code (NCLOC) 15025 (51.73%)
Logical Lines of Code (LLOC) 3484 (11.99%)
Classes 3314 (95.12%)
Average Class Length 29
Average Method Length 4
Functions 153 (4.39%)
Average Function Length 1
Not in classes or functions 17 (0.49%)
Complexity
Cyclomatic Complexity / LLOC 0.51
Cyclomatic Complexity / Number of Methods 3.37
正如您所看到的,从开发人员的角度来看,所提供的信息非常有用,因为它可以在您开始使用项目之前大致告诉您项目有多复杂。
如果你使用的是Linux(我认为你是),我推荐我的工具polyglot。它比sloccount或cloc都快得多,而且比sloccount更具特色。
您可以使用
poly .
or
poly
因此,它比一些复杂的Bash脚本更加用户友好。
工具Tokei显示目录中代码的统计信息。Tokei将显示文件的数量、文件中的总行数以及按语言分组的代码、注释和空格。Tokei也可在Mac、Linux和Windows上使用。
Tokei的输出示例如下:
$ tokei
-------------------------------------------------------------------------------
Language Files Lines Code Comments Blanks
-------------------------------------------------------------------------------
CSS 2 12 12 0 0
JavaScript 1 435 404 0 31
JSON 3 178 178 0 0
Markdown 1 9 9 0 0
Rust 10 408 259 84 65
TOML 3 69 41 17 11
YAML 1 30 25 0 5
-------------------------------------------------------------------------------
Total 21 1141 928 101 112
-------------------------------------------------------------------------------
可以按照存储库中README文件的说明安装Tokei。
我是这样做的:
以下是lineCount.c文件实现:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int getLinesFromFile(const char*);
int main(int argc, char* argv[]) {
int total_lines = 0;
for(int i = 1; i < argc; ++i) {
total_lines += getLinesFromFile(argv[i]); // *argv is a char*
}
printf("You have a total of %d lines in all your file(s)\n", total_lines);
return 0;
}
int getLinesFromFile(const char* file_name) {
int lines = 0;
FILE* file;
file = fopen(file_name, "r");
char c = ' ';
while((c = getc(file)) != EOF)
if(c == '\n')
++lines;
fclose(file);
return lines;
}
现在打开命令行并键入gcc-lineCount.c,然后键入/a.out*.txt文件。
这将显示目录中以.txt结尾的文件的总行数。