Mam więc kilka dzienników Apache przy użyciu standardowego formatu dziennika. Chcę uzyskać wszystkie wiersze dziennika, które nie pochodzą z przeszukiwacza sieci.
Powiedzmy, że mam plik robot_patterns z wpisami takimi jak
Googlebot
msnbot-media
YandexBot
bingbot
Jeśli uruchomię polecenie grep -f robot_patterns *.log
, otrzymam wszystkie wpisy od botów pasujących do powyższych wzorów. Moja aktualna lista zawiera ~ 30 wpisów botów i agentów, które chcę zignorować.
Ale chcę znaleźć wszystkie wpisy, które NIE pochodzą od botów . Dlatego próbuję grep -v -f robot_patterns *.log
i grep nie zwraca żadnych wyników. Nie tego oczekuję ani nie pragnę i nie znajduję oczywistego sposobu na uzyskanie tego, czego chcę. Podczas korzystania z -v
opcji połączonej z wieloma wzorami w pliku grep zwróci pasującą linię tylko wtedy, gdy pasuje do KAŻDEGO wzorca.
GNU grep 2.6.3
.