c99
任何可用于将样式注释//
转换为c
样式注释/* ..*/
到整个项目的工具/脚本?
如果我有这样的代码
// printf("stcakoverflow");
然后它将被转换为
/* printf("stcakoverflow"); */
并且
int temp // this is temp varialbe
转换成
int temp /* this is temp varialbe */
对于命令行示例,请尝试以下内容:
echo "int temp; // this is temp variable" | sed 's@//\(.*\)$@/*\1 */@'
上述结果
国际温度;/* 这是临时变量 */
对于一个真实的文件,您可以使用例如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
中。
对于喜欢使用 IDE/Editor 的人来说,使用 Notepad++(你也可以在 Linux 上用 Wine 运行它)正则表达式匹配和替换你可以对一堆文件进行匹配。
查找内容: //(.*?)$
替换为:/\*\1\*/
ccmtcnvt - 将 C++ 注释转换为 C 注释
在约阿希姆·皮勒博格的帮助下
我做了这个
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 */@' {} \;