如何使用grep读取文件并仅显示相关行?

时间:2014-02-12 09:07:46

标签: bash grep

我正在尝试阅读/var/log/messages以确定pacemakerd的问题。 问题是日志已满,来自xinetdnrpe的通知,所以我知道的唯一方法是:

# tail -n 2000 /var/log/messages |grep -v xinetd | grep -v nrpe |less

所以我的问题是,是否有办法在同一-v xinetd and nrpe中使用grep? 提前致谢

3 个答案:

答案 0 :(得分:3)

您可以使用

grep -v "xinetd\|nrpe"

答案 1 :(得分:2)

当然,您可以将first_pattern|second_pattern-E的{​​{1}}选项一起使用:

grep

来自tail -n 2000 /var/log/messages | grep -Ev "xinetd|nrpe"

  

-E, - extended-regexp

     

将PATTERN解释为扩展正则表达式(ERE,见下文)。   (-E由POSIX指定。)

实施例

man grep

答案 2 :(得分:0)

grep -v "xinetd\|nrpe"

是正确和充分的。像-E或egrep这样的选项不是必需的。

更多变种:

grep -v "^xinetd\|nrpe"   # exclude lines starting with xinetd, and any nrpe"
grep -v "xinetd$\|nrpe"   # exclude lines ending with xinetd, and any nrpe"