任何可用于将c99样式注释//转换为c样式注释/ * .. * /的工具/脚本到整个项目中?

时间:2012-08-22 11:39:05

标签: c linux shell comments

任何可用于将c99样式评论//转换为c样式评论/* ..*/的工具/脚本到整个项目中?

如果我有这样的代码

// printf("stcakoverflow");

然后它将被转换为

 /* printf("stcakoverflow"); */

以及

int temp // this is temp varialbe

转换为

int temp /* this is temp varialbe */

4 个答案:

答案 0 :(得分:6)

对于命令行示例,请尝试例如像这样的东西:

echo "int temp; // this is temp variable" | sed 's@//\(.*\)$@/*\1 */@'

以上结果

int temp; /* this is temp variable */

对于真实文件,您可以使用例如cat代替echo,它是sed的管道和执行“魔法”的sed命令。

编辑:如何为大量文件执行此操作

这样的事情可能是:

cd /your/source/directory
mkdir converted-files
for f in *.cpp; do
    cat $f | sed 's@//\(.*\)$@/*\1 */@' > converted-files/$f
done

现在所有转换后的源文件都位于converted-files文件夹中。

答案 1 :(得分:5)

对于使用IDE /编辑器的人来说,使用Notepad ++(你也可以在Linux上使用Wine运行它)正则表达式匹配并替换你可以为一堆文件做。

查找内容//(.*?)$

替换为/\*\1\*/

enter image description here

答案 2 :(得分:4)

  

ccmtcnvt - 将C ++注释转换为C注释

答案 3 :(得分:0)

在Joachim Pileborg的帮助下

我做了这个

find /path/to/project/ -type f -exec sed -i  's@//\(.*\)$@/*\1 */@' {} \;

这里工作正常..但它适用于所有文件。

如果你想让它只用于.c和.h文件那么

find /path/to/project/ -name '*.c' -o -name '*.h' -exec sed -i  's@//\(.*\)$@/*\1 */@' {} \;