我有几个充满C代码的目录,我想从所有代码(.h文件和.c文件)中检索所有/ * * /注释的目录和子目录,把这些注释都放在一个文本文件中(事情不需要特别有序,只需要把它们全部放在那里)。我怎样才能做到这一点?检索所有来自大型C项目的评论
的任何解决方案,它可编写脚本将是巨大的......
我有几个充满C代码的目录,我想从所有代码(.h文件和.c文件)中检索所有/ * * /注释的目录和子目录,把这些注释都放在一个文本文件中(事情不需要特别有序,只需要把它们全部放在那里)。我怎样才能做到这一点?检索所有来自大型C项目的评论
的任何解决方案,它可编写脚本将是巨大的......
检查这个答案蟒蛇的解决方案。 Python snippet to remove C and C++ comments
我低估了这一点,因为我不知道你在说什么......如何解决它?抱歉。 – magnetar 2011-05-25 21:06:04
@magnetar:如果你可以删除评论,你也可以打印它们。 Konrad Rudolph的第二个解决方案应该可行。 – 2011-05-25 21:08:25
如果你不喜欢翻转雷克斯的感觉,你可以尝试下面的perl代码(这是谷歌的第一次点击: http://search.cpan.org/~rokr/String-Comments-提取-0.023/lib目录/字符串/评论/ Extract.pm – Hucker 2011-05-25 22:01:10
这里是一个sed脚本,打印所有的/ * * /评论,但它会在字符串打印“意见”(由托马斯·马修斯指出),它会不会打印//注释。不知道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
用空格这将不处理文件名中,并输出将不漂亮!
干杯
如果你有Linux下,你可以这样做容易吗?只是命令行它:X – AlanFoster 2011-05-25 20:52:48
为什么你要这样做呢?嗯,我认为寻找猥亵是一个原因,但你最好在整个代码库中搜索它们。 – 2011-05-25 20:55:10
doxygen不这样做吗?还是我误会了? – 2011-05-25 20:58:56