如何删除#前面的注释,但保留#include和#!

时间:2013-08-09 07:04:37

标签: regex sed grep

我需要删除有关差异的代码段的注释部分。

我使用grep和sed删除以#,//和;开头的所有行,以及/ *和* /所包含的多行。

一个问题是,此规则还会删除以#include和#!/ bin /开头的行,无论哪些是有效的代码语句。

有没有办法保留包含#include和#的行?在开始时,但使用grep或bash删除以#开头的其余行。

提前感谢您的回复。

3 个答案:

答案 0 :(得分:0)

使用\转义,换句话说,如果你想保留#,请使用\#。但是,请您更详细地了解编程语言,以便为您提供准确的答案

答案 1 :(得分:0)

egrep "^ *([^ #]|#!|#include|$)"

答案 2 :(得分:0)

我认为最简单的方法是使用egrep -v来管道原始的grep命令,如下所示:

grep "your-pattern" *.c | egrep -v "^\s*#(!|include|define)\b"