【发布时间】:2020-04-25 15:05:58
【问题描述】:
我有一个 C 文件目录。我想从这些源文件中删除所有类型的 cmets。
例如,假设我有一个类似于以下文件的源代码。
#include <stdio.h>
int main() {
int number;
/* Sample Multiline Comment
* Line 1
* Line 2
*/
printf("Enter an integer: ");
// reads and stores input
scanf("%d", &number);
printf("You entered: %d", number); //display output
return 0;
/* Comment */
}
我想删除这段代码中所有类型的 cmets。这包括,
//
/* */
/*
*
*/
我已尝试使用 sed 命令执行此任务。
find . -type f |xargs sed -i 's,/\*\*,,g;s,\*/,,g;s,/\*,,g;s,//,,g'
这只会删除上面的注释符号本身,而不是注释。我想删除整个评论以及上述三个评论符号。
我怎样才能达到这个标准。
【问题讨论】:
-
恕我直言,我认为任何其他工具都不适用于此任务,这也可能导致误报。那么为什么不使用该语言本身的东西更好呢?
-
@coder:有没有想到
strcpy(s, "// this is not a comment")这样的语句? -
这能回答你的问题吗? Remove comments from C/C++ code
标签: regex linux shell sed comments