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)