从大型C项目中检索所有注释

时间:2011-05-25 20:51:45

标签: c comments

我有几个充满C代码的目录,我想从所有目录和子目录中的所有代码(.h文件和.c文件)中检索所有/ * * /注释,并放置这些注释所有在文本文件中(事情不需要特别有序,只需填写所有内容)。我怎么能这样做?

任何可编写脚本的解决方案都很棒......

2 个答案:

答案 0 :(得分:4)

检查此答案以获取python解决方案。 Python snippet to remove C and C++ comments

答案 1 :(得分:0)

这是一个sed脚本,它打印所有的/ * * /注释,但它会在字符串中打印“comments”(如Thomas Matthews所指出的),它不会打印//注释。不知道nestet评论会发生什么。

/\/\*/{
    bc
:a
    s/\///;Tz
:c
    s/^[^\/]*//;tb;Tb
:b
    s/^\/\*/\/\*/;Ta
:e
    s/\*\//\*\//;Td;s/\*\//\*\/\n/;x;tg
:g
    s/\(.\)/\1/;Tf;p;s/^.*$//
:f
    x;P;s/^.*\n//;bc
:d
    H;n;be
:z
}

要打印目录中所有文件的所有注释,请按如下方式使用它:

for i in `find -iname "*.c" -or -iname "*.h"`; do echo ">>> $i"; sed -nf the.script.from.above < $i; done > output.txt

这将不会处理其中包含空格的文件名,输出也不会很漂亮!

干杯