搜索模式并删除所有行

时间:2016-09-21 08:55:17

标签: linux shell unix

我有写入警报的系统日志。在我的情况下,我有很多重复的警报,我想忽略,只关注可能存在的新警报。

示例警报:

grep -v 'RC USSDString' IN-201609201800.txt | more

上述行与一个警报有关。在这里,我想在我的日志文件中省略这样的警报。

我已尝试使用grep -v 'RC USSDString' IN-201609201800.txt | more,但此命令仅删除搜索模式{{1}}确实存在的行,其中我想删除找到模式的整个警报行。

修改 - 我再添加了一个由双破折号分隔的警报

2 个答案:

答案 0 :(得分:1)

假设您的警报是多行的,并且--将两个警报相互分开。

awk -v RS="--" '{$1=$1} !/RC USSDString/' alarmfile 

如果要添加,则从输出中排除多个字符串:

awk -v RS="--" '{$1=$1} !/string-1/ || !/string-2/' alarmfile

答案 1 :(得分:0)

你需要做什么:

grep -Ev 'pattern1|pattern2|pattern3' file