Usando grep -v em vários argumentos

9

Existe uma maneira mais simples de fazer isso? grep -v foo file | grep -v bar

Provavelmente, há maneiras muito elegantes de fazer isso com o egrep, mas como usar o grep antigo?

EDIT: grep -v 'foo\|bar' file parece funcionar apenas com o GNU grep. Eu estou no Solaris. Alguma solução para isso?

    
por rahmu 26.08.2011 / 12:02

2 respostas

16

Você pode ter vários testes em um único comando grep passando cada expressão com um argumento -e em vez de como o primeiro argumento não opcional, como você normalmente vê:

$ grep -v -e foo -e bar file

Isso diz a mesma coisa que seu comando faz: imprimir linhas de file que não contêm nem "foo" nem "bar".

Lembre-se de que remover -v inverte completamente isso; Também muda a operação lógica! Você obtém todas as linhas que contêm "foo" ou "bar".

    
por 26.08.2011 / 13:01
8

grep -Ev 'word1|word2' deve funcionar bem

    
por 26.08.2011 / 12:06

Tags