有没有更简单的方法来做到这一点?
grep -v foo file | grep -v bar
使用 egrep 可能有非常优雅的方法,但是如何使用简单的旧 grep 呢?
编辑:grep -v 'foo\|bar' file
似乎只适用于 GNU grep。我在 Solaris 上。有什么解决办法吗?
War*_*ung 34
您可以在单个grep
命令中进行多个测试,方法是将每个表达式与-e
参数一起传递,而不是像通常看到的那样作为第一个非选项参数:
$ grep -v -e foo -e bar file
Run Code Online (Sandbox Code Playgroud)
这与您的命令所做的相同:打印file
既不包含“foo”也不包含“bar”的行。
请记住,删除-v
完全颠倒了这一点;它也改变了逻辑操作!您将获得所有包含“foo”或“bar”的行。
Šim*_*óth 19
grep -Ev 'word1|word2'
应该工作得很好