为了进行差异处理,我需要删除代码上的注释部分。
我使用grep和sed删除所有以#、//和;开头的行;,以及由/*和*/包围的多条线。
一个问题是,此规则还删除了以#include和#开头的行/bin/任何有效的代码语句。
有没有办法保留包含#include和#的行!在开头,但使用grep或bash删除以#开头的其余行。
提前感谢您的回复。
使用进行转义,换句话说,如果要保留
#
,请像使用#
一样使用它。但是你能不能更具体地介绍一下编程语言,给你一个准确的答案
egrep "^ *([^ #]|#!|#include|$)"
我认为最简单的方法是用egrep -v
管道传输原始grep命令,如下所示:
grep "your-pattern" *.c | egrep -v "^s*#(!|include|define)b"