Zastanawiałem się, czy jest najlepszy sposób na uruchomienie następującego polecenia

cat cisco.log-20151103.log | grep -v "90.192.142.138" | grep -v "PIX" | grep -v "Intrusion" 

Próbowałem

cat cisco.log-20151103.log | grep -v "90.192.142.138|PIX|Intrusion" 

, ale to nie działa.

Odpowiedź

dwie inne opcje

grep -v -e 90.192.142.138 -e PIX -e Intrusion cisco.log-20151103.log 

i zakładając ustalone ciągi znaków

grep -vF "90.192.142.138 PIX Intrusion " cisco.log-20151103.log 

Odpowiedź

grep niekoniecznie wymaga wprowadzenia potoku, więc możesz to zrobić

grep -vE "90\.192\.142\.138|PIX|Intrusion" cisco.log-20151103.log 

Wielkie E włącza tryb wyrażenia regularnego i w tym przypadku należy zastosować znaki zmiany znaczenia dla kropek.

Komentarze

  • To powinno być -E włącza Rozszerzony tryb wyrażeń regularnych, który umożliwia naprzemienność | wzorców. grep bez -E ma wyrażenia regularne, a kropki mają znaczenie. Kropki powinny zostać zmienione w pytaniu n, ale ' jest mało prawdopodobne, aby sekwencja liczb i tak pasowała do czegokolwiek innego. grep -f wyłącza wyrażenia regularne.
  • W każdym przypadku należy wprowadzić znaki zmiany znaczenia kropek; podany przykład (w OP i odpowiedzi) pasuje do 190.192.142.138; więc najlepiej byłoby, gdyby część adresu IP była zakotwiczona, jeśli to możliwe, lub zawierać dowolny separator znajdujący się przed adresem IP w dzienniku, zakładając, że przecinek ", " żeby wszystko było jasne: grep -vE ',90\.192\.142\.138,|PIX|Intrusion' cisco.log-20151103.log

Odpowiedź

grep -vE "90.192.142.138|PIX|Intrusion" cisco.log-20151103.log

Komentarze

  • Od . pasuje do dowolnego znaku, to również pasuje np 90C192X142R138 i nie o to prosił OP. Unikaj znaków specjalnych (wyrażenia regularnego).

Odpowiedź

$ grep -v -f exclude.list $ cat exclude.list 90.192.142.138 PIX Intrusion 

Komentarze

  • To działa dobrze, ' nie jestem pewien, dlaczego ktoś go zlekceważył.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *