Mietin, onko seuraava tapa suorittaa seuraava komento
cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion"
Yritin
cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion"
mutta se ei toimi.
Vastaa
kaksi muuta vaihtoehtoa
grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log
ja oletetaan kiinteät merkkijonot
grep -vF "90.192.142.138 PIX Intrusion " cisco.log-20151103.log
Vastaus
grep ei välttämättä tarvitse syötettä putkesta, joten voit tehdä sen
grep -vE "90\.192\.142\.138|PIX|Intrusion" cisco.log-20151103.log
Isolla E kytketään säännöllinen lauseketila päälle ja pisteet on vältettävä tässä tapauksessa.
Kommentit
ilman -E on säännöllisiä lausekkeita ja pisteet ovat merkityksellisiä. Pisteistä olisi pitänyt välttää questiossa n, mutta ' on epätodennäköistä, että numerosarja sopisi joka tapauksessa muuhun. grep -f
poistaa säännölliset lausekkeet käytöstä.
190.192.142.138
; joten ihannetapauksessa IP-osoitekappale tulisi ankkuroida, jos mahdollista, tai sisällyttää lokiin IP-osoitteen eteen mikä tahansa erotin, olettaen pilkun ", " selventää asioita: grep -vE ',90\.192\.142\.138,|PIX|Intrusion' cisco.log-20151103.log
vastaus
grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log
Kommentit
- Koska
.
vastaa mitä tahansa merkkiä, joka sopii myös esim90C192X142R138
ja sitä OP ei pyytänyt. Sinun tulisi välttää erikoismerkkejä (regex).
Vastaa
$ grep -v -f exclude.list $ cat exclude.list 90.192.142.138 PIX Intrusion
Kommentit
- Tämä toimii hyvin, en ' ole varma, miksi joku äänesti sitä.
-E
ottaa käyttöön laajennetun säännöllisen lausekkeen tilan, joka sallii kuvioiden vuorottelun|
. div id = ”3c51ea2e0c”>