4

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

如果我有这样的代码

// printf("stcakoverflow");

然后它将被转换为

 /* printf("stcakoverflow"); */

并且

int temp // this is temp varialbe

转换成

int temp /* this is temp varialbe */
4

4 回答 4

7

对于命令行示例,请尝试以下内容:

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

上述结果

国际温度;/* 这是临时变量 */

对于一个真实的文件,您可以使用例如cat而不是echo,它是管道sedsed执行“魔术”的命令。

编辑:如何处理大量文件

可能是这样的:

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

现在所有转换的源文件都将在一个文件夹converted-files中。

于 2012-08-22T11:45:16.773 回答
6

对于喜欢使用 IDE/Editor 的人来说,使用 Notepad++(你也可以在 Linux 上用 Wine 运行它)正则表达式匹配和替换你可以对一堆文件进行匹配。

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

替换为/\*\1\*/

在此处输入图像描述

于 2012-08-22T11:52:40.980 回答
4

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

于 2012-08-22T12:11:00.270 回答
0

在约阿希姆·皮勒博格的帮助下

我做了这个

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 */@' {} \;
于 2012-08-22T13:12:41.127 回答