Para especificar correspondências "alternativas", você precisa incluir a opção "E" como:
$ grep -Ev "^(apple|banana)" foo.txt
$ grep -Ev "(^apple)|(^banana)" foo.txt
Qualquer versão acima deve funcionar.
Eu gostaria de selecionar linhas que não correspondam ao padrão especificado, onde eu tenho vários padrões para excluir. Por exemplo, quero excluir as linhas que começam com as palavras-chave apple
e banana
:
$ grep -v '^apple' foo.txt | grep -v '^banana' -
Eu estou querendo saber se há uma maneira de fazer isso com uma expressão ou uma chamada para grep
. Eu tentei o seguinte, mas eles não parecem funcionar como esperado:
$ grep -v "^apple" -v "^banana" foo.txt
$ grep -v "^(apple|banana)" foo.txt
$ grep -v "(^apple)|(^banana)" foo.txt
Qual é a maneira correta de excluir vários padrões?
Você também pode especificar vários padrões com -e
.
grep -e '^apple' -e '^banana' -v foo.txt
grep -e '^apple' -e '^banana' foo.txt