¿Hay una manera más simple de hacer esto?
grep -v foo file | grep -v bar
Probablemente hay formas muy elegantes de hacerlo con egrep, pero ¿cómo ir con grep simple?
EDITAR: grep -v 'foo\|bar' file
parece funcionar solo con GNU grep. Estoy en Solaris ¿Alguna solución para eso?
-v
bandera es una negación.not(A or B) == not(A) and not(B)
Respuestas:
Puede tener múltiples pruebas en un solo
grep
comando pasando cada expresión con un-e
argumento en lugar de como el primer argumento sin opción como normalmente ve:Eso dice lo mismo que hace su comando: imprimir líneas
file
que no contienen "foo" ni "bar".Tenga en cuenta que eliminar
-v
completamente lo invierte; ¡También cambia la operación lógica! Obtiene todas las líneas que contienen "foo" o "bar".fuente
grep -Ev 'word1|word2'
debería funcionar bienfuente
egrep -v 'word1|word2
\|
es una extensión grep de GNU, pero puede lograr lo mismo de forma portátil con-E
y el|
operador.