Вы можете просто передать первый вывод другому grep и использовать его как еще один «фильтр», например:
хвост -f /var/log/fail2ban.log -f /var/log/ufw.log | grep "Запретить\|БЛОКИРОВАТЬ\|РАЗРЕШИТЬ" | grep -v "UDP\|ICMP"
Обратите внимание, что grep может складывать разные строки, даже регулярное выражение, когда вы используете двойные кавычки, разделяя их вертикальной чертой «|» но вы должны экранировать символ с помощью «\», чтобы не получить странные вещи.
Параметр -v буквально говорит в человеке
-v, --инвертировать-совпадение
Инвертируйте смысл совпадения, чтобы выбрать несовпадающие строки.
Таким образом, кажется, что совпадение, которое вы определяете, просто инвертируется, поэтому вы не можете его параметризовать.
Как и в синопсисе, вы можете указать 3 типа параметров.
Опции, выкройка и файл.
Варианты в целом всегда начинаются с - или -- и вы можете поставить их кучу.
Вы можете определить отдельный шаблон или определенный тип шаблона с помощью -e или -f или без них.
И всегда последним должен быть файл/ы или каталог (каталогам нужен параметр -R для рекурсии, или вы можете просто указать каталог/*). если не указано, он попытается прочитать стандартный ввод, как вы это делаете.
СИНТАКСИС
grep [ОПЦИЯ...] ШАБЛОНЫ [ФАЙЛ...]
grep [ОПЦИЯ...] -e ШАБЛОНЫ... [ФАЙЛ...]
grep [ВАРИАНТ...] -f ФАЙЛ_ШАБЛОНА... [ФАЙЛ...]
Во всяком случае, это уже ответил более простым способом