我必须维护一个大的旧项目项目,我的先行者(缺乏版本控制)已将大量代码转换为注释。 现在我们掌握了版本控制的一切,我觉得我们不再需要这些评论。 无论如何,这些评论中的代码已经烂透了。寻找很长的评论
我想找到那些评论中最长的。有一种方式可以让我拥有所有具有超过20条连续注释行的文件。 据我所知只有//
已被使用。找到/* */
是没有必要的(可能甚至是有害的,因为它会发现所有腐烂的javadoc ......叹息)。
我必须维护一个大的旧项目项目,我的先行者(缺乏版本控制)已将大量代码转换为注释。 现在我们掌握了版本控制的一切,我觉得我们不再需要这些评论。 无论如何,这些评论中的代码已经烂透了。寻找很长的评论
我想找到那些评论中最长的。有一种方式可以让我拥有所有具有超过20条连续注释行的文件。 据我所知只有//
已被使用。找到/* */
是没有必要的(可能甚至是有害的,因为它会发现所有腐烂的javadoc ......叹息)。
Howabout这样的:
grep -ERn '^[[:space:]]*//' root_directory
的-E
采用 '扩展' 的正则表达式
的-R
使得递归目录
的-n
打印的filnames行号
然后你可以轻松处理此列表以查找连续匹配 - 只需查找块即可将行号增加一行输出。
这是假设你不想匹配这样的台词:
int x = foo; // some comment
但只有线是完全评论:
// this is a comment
更新:
这是一个简短的Python脚本,用于处理上述的输出:
import sys
filenames_of_interest = set()
filename = None
prev_line_num = 0
comment_count = 0
for line in sys.stdin.readlines():
this_filename, line_num, _ = line.split(':',2)
line_num = int(line_num)
if this_filename != filename:
comment_count = 0
filename = this_filename
elif line_num != prev_line_num + 1:
comment_count = 0
prev_line_num = line_num
comment_count += 1
if comment_count > 20:
filenames_of_interest.add(filename)
print "files with blocks of comments:"
for i in filenames_of_interest:
print ' ', i
它不会与他们的名字冒号正确对待文件,但不应该是很难修改处理,如果这是一个问题。
我还没有尝试过,但Sonar看起来很有希望。
编辑:似乎安装是一种痛苦。
我会做这样的:
每当我更新一个特定的文件,我会在检查之前删除评论这样一来“我将离开营地清洁比你发现它”一个接一个。
相信我!代码将在3个月内更清洁。
“[是否有快速的方法来查找所有在Eclipse中的java文件注释掉的代码?](http://stackoverflow.com/questions/4144213/is-there-a-quick-way-to-找到所有的注释掉代码跨java文件在ecl)“是一个类似的问题。我链接[这个答案](http://stackoverflow.com/questions/4144213/is-there-a-quick-way-to-find-all-the-commented-out-code-across-java-files-in -ecl/7677471#7677471)。 – bbuser