Saltar al contenido

Grep regex NO contiene cadena

Solución:

grep partidos, grep -v hace lo inverso. Si necesita “hacer coincidir A pero no B”, generalmente usa tuberías:

grep "${PATT}" file | grep -v "${NOTPATT}"

(?<!1.2.3.4).*Has exploded

Debe ejecutar esto con -P para tener una búsqueda atrás negativa (expresión regular de Perl), por lo que el comando es:

grep -P '(?<!1.2.3.4).*Has exploded' test.log

Prueba esto. Utiliza una búsqueda hacia atrás negativa para ignorar la línea si está precedida por 1.2.3.4. ¡Espero que ayude!

patterns[1]="1.2.3.4.*Has exploded"
patterns[2]="5.6.7.8.*Has died"
patterns[3]="!9.10.11.12.*Has exploded"

for i in {1..3}
 do
grep "${patterns[$i]}" logfile.log
done

debe ser lo mismo que

egrep "(1.2.3.4.*Has exploded|5.6.7.8.*Has died)" logfile.log | egrep -v "9.10.11.12.*Has exploded"    
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *