grep 排除多个字符串

新手上路,请多包涵

我正在尝试使用 tail -f 查看日志文件,并希望排除包含以下字符串的所有行:

Nopaging the limit iskeyword to remove is

我可以像这样排除一个字符串:

 tail -f admin.log|grep -v "Nopaging the limit is"

但是如何排除包含 string1string2 的行?

原文由 Jeets 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

grep 过滤掉多行:

将这些行放在 filename.txt 中进行测试:

 abc
def
ghi
jkl

grep 命令使用 -E 标志,在字符串中的标记之间使用管道:

 grep -Ev 'def|jkl' filename.txt

印刷:

 abc
ghi

egrep 使用 -v 标志,标记之间用圆括号括起来:

 egrep -v '(def|jkl)' filename.txt

印刷:

 abc
ghi

或者如果堆叠 -e 通过 grep 参数进行标记是可以的(信用 -> @Frizlab ):

 grep -Fv -e def -e jkl filename.txt

印刷:

 abc
ghi

原文由 Eric Leschinski 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题