Linux 4行反转包含许多文件的目录中的grep搜索
我在一个目录中有许多日志文件。在这些文件中,有许多行。其中一些行包含Linux 4行反转包含许多文件的目录中的grep搜索,linux,shell,grep,Linux,Shell,Grep,我在一个目录中有许多日志文件。在这些文件中,有许多行。其中一些行包含ERRORword 我正在使用grep ERROR abc.*从所有abc1、abc2、abc3等文件中获取错误行 现在,有4-5行ERROR我想避免 所以,我使用 grep ERROR abc* | grep -v 'str1\| str2' 这个很好用。但当我再插入一个字符串时 grep ERROR abc* | grep -v 'str1\| str2\| str3 它不会受到影响 我需要避免使用4-5个字符串。。有人
ERROR
word
我正在使用grep ERROR abc.*
从所有abc1、abc2、abc3等文件中获取错误行
现在,有4-5行ERROR
我想避免
所以,我使用
grep ERROR abc* | grep -v 'str1\| str2'
这个很好用。但当我再插入一个字符串时
grep ERROR abc* | grep -v 'str1\| str2\| str3
它不会受到影响
我需要避免使用4-5个字符串。。有人能提出一个解决方案吗?你的例子应该有用,但你也可以使用
grep ERROR abc* | grep -e 'str1' -e 'str2' -e 'str3' -v
您正在使用多个搜索模式,即在某种程度上使用正则表达式
man
页面所示
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern. This can be used to specify multiple search patterns, or to protect a pattern beginning with a hyphen (-). (-e is specified by POSIX.)
-E, --extended-regexp
Interpret PATTERN as an extended regular expression (ERE, see below). (-E is specified by POSIX.)
因此,您需要将-E
标志与-v
反向搜索一起使用
grep ERROR abc* | grep -Ev 'str1|str2|str3|str4|str5'
供您参考的用法示例:-
$ cat sample.txt
ID F1 F2 F3 F4 ID F1 F2 F3 F4
aa aa
bb 1 2 3 4 bb 1 2 3 4
cc 1 2 3 4 cc 1 2 3 4
dd 1 2 3 4 dd 1 2 3 4
xx xx
$ grep -vE "aa|xx|yy|F2|cc|dd" sample.txt
bb 1 2 3 4 bb 1 2 3 4
那个字符串的值是多少?您需要给出输入/输出示例和/或一个最小的、有效的、可重复的代码示例。小心-您正在谈论字符串(
insert 1 more string
和str1
等)但是,您正在将grep与regexp一起使用,而不是字符串。了解其中的区别,并使用正确的工具和正确的选项来选择所需的内容,并在请求帮助时使用正确的术语来完成所需的工作。当您的问题包含简明、可测试的样本输入/输出时,如果您希望搜索strin,请务必准确gs或regexp,以便我们能最好地帮助您。您真的需要|
之后的空间吗?