Подтвердить что ты не робот

Grep исключает несколько строк

Я пытаюсь увидеть файл журнала с помощью tail -f и хочу исключить все строки, содержащие следующие строки:

"Nopaging the limit is"`  and `"keyword to remove is"

Я могу исключить одну строку следующим образом:

tail -f admin.log|grep -v "Nopaging the limit is"

Но как я исключаю строки, содержащие любой из string1 или string2.

4b9b3361

Ответ 1

Два примера фильтрации нескольких строк с помощью grep:

Поместите это в filename.txt:

abc
def
ghi
jkl

команда grep с использованием опции -E с каналом между токенами в строке:

grep -Ev 'def|jkl' filename.txt

печатает:

abc
ghi

Команда с использованием опции -v с каналом между токенами, окруженными parens:

egrep -v '(def|jkl)' filename.txt

печатает:

abc
ghi

Ответ 2

Другой вариант - создать список исключений, особенно полезен, когда у вас есть длинный список исключений.

vi /root/scripts/exclude_list.txt

Теперь добавьте то, что вы хотели бы исключить

Nopaging the limit is
keyword to remove is

Теперь используйте grep для удаления строк из файла журнала файлов и просмотра информации, не исключенной.

grep -v -f /root/scripts/exclude_list.txt /var/log/admin.log

Ответ 3

egrep -v "Nopaging the limit is|keyword to remove is"

Ответ 4

grep -Fv -e 'Nopaging the limit is' -e 'keyword to remove is'

-F соответствует литеральными строками (вместо регулярного выражения)

-v инвертирует совпадение

-e позволяет использовать несколько шаблонов поиска (все литеральные и инвертированные)

Ответ 5

Вы можете использовать обычный grep следующим образом:

tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"

Ответ 6

tail -f admin.log|grep -v -E '(Nopaging the limit is|keyword to remove is)'

Ответ 7

Глыбы могут быть скованы цепью. Например:

tail -f admin.log | grep -v "Nopaging the limit is" | grep -v "keyword to remove is"