首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何递归地计算目录中的所有代码行?

如何递归地计算目录中的所有代码行?
EN

Stack Overflow用户
提问于 2009-08-31 17:42:20
回答 46查看 954.8K关注 0票数 1.8K

我们有一个PHP应用程序,并希望计算特定目录及其子目录下的所有代码行。

我们不需要忽略评论,因为我们只是想得到一个粗略的想法。

代码语言:javascript
运行
复制
wc -l *.php 

该命令对于给定的目录非常有效,但它忽略了子目录。我认为下面的注释可能会起作用,但它返回74,这肯定不是这样的……

代码语言:javascript
运行
复制
find . -name '*.php' | wc -l

重新输入目录中的所有文件的正确语法是什么?

EN

回答 46

Stack Overflow用户

回答已采纳

发布于 2009-08-31 17:50:12

尝试:

代码语言:javascript
运行
复制
find . -name '*.php' | xargs wc -l

或(当文件名包含特殊字符时,如空格)

代码语言:javascript
运行
复制
find . -name '*.php' | sed 's/.*/"&"/' | xargs  wc -l

也可能会有所帮助。

它将为您所指向的任何层次结构提供准确的源代码行数,以及一些额外的统计数据。

排序输出:

find . -name '*.php' | xargs wc -l | sort -nr

票数 3K
EN

Stack Overflow用户

发布于 2009-08-31 20:26:10

对于另一行代码:

代码语言:javascript
运行
复制
( find ./ -name '*.php' -print0 | xargs -0 cat ) | wc -l

它适用于带有空格的名称,并且只输出一个数字。

票数 533
EN

Stack Overflow用户

发布于 2013-02-04 23:11:05

如果使用较新版本的Bash (或ZSH),就会简单得多:

代码语言:javascript
运行
复制
wc -l **/*.php

在Bash shell中,这需要设置globstar选项,否则**全局运算符就不是递归的。要启用此设置,请发出

代码语言:javascript
运行
复制
shopt -s globstar

要使其永久存在,请将其添加到其中一个初始化文件(~/.bashrc~/.bash_profile等)中。

票数 438
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1358540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档