如何删除以#开头的注释,但保留#include和#



为了进行差异处理,我需要删除代码上的注释部分。

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

一个问题是,此规则还删除了以#include和#开头的行/bin/任何有效的代码语句。

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

提前感谢您的回复。

使用进行转义,换句话说,如果要保留#,请像使用#一样使用它。但是你能不能更具体地介绍一下编程语言,给你一个准确的答案

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

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

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

最新更新