首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cloc (计算代码行数)结果

使用cloc (计算代码行数)结果
EN

Stack Overflow用户
提问于 2015-06-05 00:59:44
回答 3查看 1.1K关注 0票数 2

我正在为我的研究编写一个脚本,我想要获得源文件中的总行数。我遇到了cloc,我想我会在我的脚本中使用它。

然而,cloc给出的结果包含了太多的信息(不幸的是,因为我是一个新成员,我不能上传照片)。它给出了文件数、行数、空行数、注释行数和其他图形表示内容。

我只对在计算中使用它的行数感兴趣。有没有一种方法可以很容易地获得这个数字(可能是通过在命令行中执行一些选项(尽管我查看了可用的选项,但没有找到适合我的情况)?

我想对结果做正则表达式来得到数字;然而,这是我第一次使用cloc,可能有更好的/专业的方法来做这件事。

有什么想法吗?

问候你,Arwa

EN

回答 3

Stack Overflow用户

发布于 2015-06-05 01:19:05

我对CLOC不是很确定。但是使用默认的shell命令是值得的。请看一下this question

单独获取代码行数

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

若要获取目录中的代码总行数,请执行以下操作。

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

请注意,如果您需要具有特定扩展名的文件中的行数,可以使用*.ext

如果是拼音,则返回*.rb

票数 0
EN

Stack Overflow用户

发布于 2015-06-05 01:29:49

对于一些非常快速和简单的东西,你可以直接使用:

代码语言:javascript
复制
Dir.glob('your_directory/**/*.rb').map do |file| 
  File.foreach(file).count
end.reduce(:+)

这将计算your_directory及其子目录中所有.rb文件的行数。尽管我建议添加一些处理空行和注释行的方法。有关Dir::glob的更多信息

票数 0
EN

Stack Overflow用户

发布于 2015-06-06 00:40:16

@BinaryMee和@engineersmnky感谢您的回复。

我尝试了两种不同的解决方案,一种使用“readline”从@gicappa得到了答案

Count the length (number of lines) of a CSV file?

另一种解决方案是使用cloc。我运行了命令

代码语言:javascript
复制
%x{perl #{ClocPath} #{path-to-file} > result.txt} 

并将结果保存在result.txt中

cloc return以图形形式返回结果(我无法上传图像),它还报告空白行数、注释行数和代码行数。正如我所说的,我对代码行很感兴趣。因此,我打开文件并使用正则表达式来获得我需要的数字。

代码语言:javascript
复制
content = File.read("#{path}/result.txt")
line = content.scan(/(\s+\d+\s+\d+\s+\d+\s+\d+)/)
total = line[0][0].split(' ').last

这里的内容将包含一个文件的内容,然后line将从文件中获得这一行:

C# 1 3 3 17

C#是文件的语言,1是文件数量,3是空白行数,3是注释行数,17是代码行数。我从cloc的脚本中得到了格式的帮助。那么总数将是17。

如果您仅读取特定文件,则此解决方案将有所帮助;如果您正在读取多个文件的行,则需要添加更多解决方案。

希望这能帮助那些需要它的人。

问候你,Arwa

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

https://stackoverflow.com/questions/30649886

复制
相关文章

相似问题

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