Обратите внимание, что подстрока thread
находится в нижнем регистре в данных, но в верхнем регистре в вашем выражении.
Вместо этого используйте
grep -F 'WARNING' logfile | grep -F -v 'WARNING_HANDLING_thread'
-F
make grep
использовать сравнение строк вместо сопоставления с регулярным выражением (это не на самом деле связано с вашей текущей проблемой, а просто способ показать, что мы знаем, с каким типом шаблона мы сопоставляемся).
Другим вариантом было бы сделать второе grep
do без учета регистра совпадения с -i
:
grep -F 'WARNING' logfile | grep -Fi -v 'WARNING_HANDLING_THREAD'
В этом случае, однако, я бы, вероятно, вместо этого сопоставил тег [WARNING]
:
grep -F '[WARNING]:' logfile
Обратите внимание, что здесь нам необходимо -F
, чтобы grep
интерпретировал шаблон как строку, а не как регулярное выражение, соответствующее любому отдельному символу из W
,A
, R
, N
, I
, G
, а затем :
.