我有几个充满C代码的目录,我想从所有目录和子目录中的所有代码(.h文件和.c文件)中检索所有/ * * /注释,并放置这些注释所有在文本文件中(事情不需要特别有序,只需填写所有内容)。我怎么能这样做?
任何可编写脚本的解决方案都很棒......
答案 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
这将不会处理其中包含空格的文件名,输出也不会很漂亮!
干杯