Je passe une liste de modèles de regex à grep
pour vérifier par rapport à un fichier syslog. Ils correspondent généralement à une adresse IP et à une entrée de journal;
grep "1\.2\.3\.4.*Has exploded" syslog.log
C'est juste une liste de motifs comme la "1\.2\.3\.4.*Has exploded"
partie que je passe, dans une boucle, donc je ne peux pas passer "-v" par exemple.
Je suis confus en essayant de faire l'inverse de ce qui précède, et de NE PAS faire correspondre les lignes avec une certaine adresse IP et une certaine erreur, donc "! 1.2.3.4. * A explosé" correspondra aux lignes syslog pour autre chose que 1.2.3.4 m'indiquant qu'il a explosé . Je dois pouvoir inclure une adresse IP pour ne PAS correspondre.
J'ai vu divers articles similaires sur StackOverflow. Cependant, ils utilisent des modèles de regex avec lesquels je n'arrive pas à travailler grep
. Quelqu'un peut-il fournir un exemple de travail pour grep
s'il vous plaît?
MISE À JOUR: Cela se produit dans un script comme celui-ci;
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