Итак, у меня есть куча журналов Apache с использованием стандартного формата журналов. Я хочу получить все строки журнала, которые не пришли из веб-сканера.
Допустим, у меня есть файл robot_patterns с записями вроде
Googlebot
msnbot-media
YandexBot
bingbot
Если я выполню команду, grep -f robot_patterns *.log
я получу все записи ботами, соответствующими указанным выше шаблонам. Мой фактический список содержит ~ 30 записей ботов и агентов, которые я хочу игнорировать.
Но я хочу найти все записи, которые НЕ от ботов . Поэтому я стараюсь, grep -v -f robot_patterns *.log
и результаты не возвращаются grep. Это не то, чего я ожидаю или желаю, и я не нахожу очевидного способа получить то, что я хочу. При использовании -v
опции, объединенной с несколькими шаблонами в файле, grep будет возвращать совпадающую строку, только если она соответствует КАЖДОМУ шаблону.
GNU grep 2.6.3
.