带有正则表达式的Grep文件

凉风

我有一个带有一堆日志行的文件。

我想返回其中包含单词“ fail”但不包含模式的文件:

Failed any test here _fr in Pro-any text here

因此,如果其中包含:Pro-中的_fr

然后忽略该行,即使其中包含失败字样。

约翰1024

让我们考虑一下这个测试文件:

$ cat >test.log
keep fail
omit fail  _fr in Pro-

要查找符合您条件的所有行:

$ awk '/[fF]ail/ && ! /_fr in Pro-/' test.log
keep fail

要仅打印行符合条件的文件的名称,请执行以下操作:

$ awk '/[fF]ail/ && ! /_fr in Pro-/ {print FILENAME; exit}' *.log
test.log

怎么运行的:

Awk逐行隐式读取文件。条件/[fF]ail/ && ! /_fr in Pro-/匹配包含Failfail不包含的任何行_fr in Pro-在awk中&&表示逻辑与,并!表示逻辑非。

同时拒绝_fr in Pro-_en in Pro-

考虑以下测试文件:

$ cat test.log
keep fail
omit fail  _fr in Pro-
omit fail  _en in Pro-

拒绝两种形式:

$ awk '/[fF]ail/ && ! /_(fr|en) in Pro-/' test.log
keep fail

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章