Excluyendo múltiples patrones con un comando grep

Excluyendo múltiples patrones con un comando grep

Me preguntaba si existe una mejor manera de ejecutar el siguiente comando

cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion"

Lo intenté

cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion"

pero no funciona.

Respuesta1

otras dos opciones

grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log

y asumiendo cadenas fijas

grep -vF '90.192.142.138
PIX
Intrusion
' cisco.log-20151103.log

Respuesta2

grep no necesariamente necesita la entrada de una tubería, por lo que podrías hacerlo

grep -vE '90\.192\.142\.138|PIX|Intrusion' cisco.log-20151103.log

La E mayúscula activa el modo de expresión regular y en este caso es necesario escapar los puntos.

Respuesta3

grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log

Respuesta4

$ grep -v -f exclude.list
$ cat exclude.list
90.192.142.138
PIX
Intrusion

información relacionada