Je me demandais sil existe un meilleur moyen dexécuter la commande suivante
cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion"
Jai essayé
cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion"
mais ça ne marche pas.
Réponse
deux autres options
grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log
et en supposant des chaînes fixes
grep -vF "90.192.142.138 PIX Intrusion " cisco.log-20151103.log
Réponse
grep na pas nécessairement besoin dune entrée dun tube, vous pouvez donc faire
grep -vE "90\.192\.142\.138|PIX|Intrusion" cisco.log-20151103.log
La majuscule E active le mode dexpression régulière et les points doivent être échappés dans ce cas.
Commentaires
Réponse
grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log
Commentaires
- Depuis le
.
correspond à nimporte quel caractère qui correspond également par exemple90C192X142R138
et ce nest pas ce que le PO a demandé. Vous devez échapper les caractères spéciaux (regex).
Réponse
$ grep -v -f exclude.list $ cat exclude.list 90.192.142.138 PIX Intrusion
Commentaires
- Cela fonctionne bien, je ' ne sais pas pourquoi quelquun la décliné.
-E
active le mode dexpression régulière Extended , qui permet lalternance|
de motifs.grep
sans -E a des expressions régulières et les points sont significatifs. Les points auraient dû être échappés dans la quête n, mais il ' est peu probable que la séquence de nombres corresponde à autre chose de toute façon.grep -f
désactive les expressions régulières.190.192.142.138
; donc idéalement, lélément dadresse IP devrait être ancré si possible, ou inclure le délimiteur avant ladresse IP dans le journal, en supposant une virgule ", " pour clarifier les choses:grep -vE ',90\.192\.142\.138,|PIX|Intrusion' cisco.log-20151103.log