Arra gondoltam, hogy a következő parancs futtatására van-e a legjobb módszer
cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion"
Próbáltam
cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion"
, de nem működik.
Válasz
két másik lehetőség
grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log
és rögzített karakterláncok felvétele
grep -vF "90.192.142.138 PIX Intrusion " cisco.log-20151103.log
Válasz
A grep nem feltétlenül igényel bemenetet egy csőből, ezért megteheti
grep -vE "90\.192\.142\.138|PIX|Intrusion" cisco.log-20151103.log
Az E nagybetű bekapcsolja a reguláris kifejezés módját, és ebben az esetben a pontokat el kell kerülni.
Megjegyzések
Válasz
grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log
Megjegyzések
- Mivel a
.
bármely karakterrel megegyezik, ez pl90C192X142R138
és az OP nem ezt kérte. Kerülnie kell a speciális (regex) karaktereket.
Válasz
$ grep -v -f exclude.list $ cat exclude.list 90.192.142.138 PIX Intrusion
Megjegyzések
- Ez jól működik, nem tudom, hogy ' miért nem tudom, hogy valaki miért szavazta le.
-E
bekapcsolja az Extended szabályos kifejezés módot, amely lehetővé teszi a minták|
váltakozását.grep
-E nélkül szabályos kifejezések vannak és a pontok értelmesek. A questio-ban el kellett volna kerülni a pontokat n, de ' nem valószínű, hogy a számok sorrendje amúgy is megfelelne másnak.grep -f
kikapcsolja a reguláris kifejezéseket.190.192.142.138
; ideális esetben az IP-címrészletet lehorgonyzandó, ha lehetséges, vagy az IP-cím elé be kell írnia bármilyen elválasztót a naplóba, vesszőt feltételezve ", " a dolgok egyértelművé tétele érdekében:grep -vE ',90\.192\.142\.138,|PIX|Intrusion' cisco.log-20151103.log