Відповіді:
Опція інверсії матчу шаблону -v
для grep
дуже корисно для цього:
grep -v 'UFW BLOCK' /var/log/syslog
Це покаже вам всі рядки, які не містять UFW BLOCK
. Оскільки grep
використовуються основні регулярні вирази за замовчуванням, включення дужок змусить шукати будь-який з окремих символів 'UFW BLOCK', включаючи пробіл. Ви, ймовірно, не отримаєте жодного результату. Якщо вам потрібно переконатися, що навколо рядка є дужки, або відімкніть їх \[UFW BLOCK\]
, або скористайтеся -F
опцією grep
включення лише фіксованих рядків (Спасибі Zanna та Steeldriver за поради з цього приводу):
grep -Fv '[UFW BLOCK]' /var/log/syslog
Ви можете полегшити перегляд, підключивши вихід до пейджера, наприклад less
:
grep -v 'UFW BLOCK' /var/log/syslog | less
Або перенаправити вихід на файл у домашній каталог для подальшого перегляду:
grep -v 'UFW BLOCK' /var/log/syslog > ~/filtered_syslog
fgrep
команду, еквівалентну grep -F
.
Ви можете використовувати будь-який інструмент з можливостями редагування. Ви вже отримали рішення, використовуючи, grep
і sed
ось кілька інших варіантів. Всі вони можуть бути легко конвеєр less
або more
або що - небудь ще.
Perl
perl -ne 'print unless /\[UFW BLOCK\]/' /var/log/syslog
Оскільки це Perl, TIMTOWDI! .
perl -pe '$_="" if /\[UFW BLOCK\]/' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ || print' /var/log/syslog
perl -ne 'print if !/\[UFW BLOCK\]/' /var/log/syslog
perl -ne '!/\[UFW BLOCK\]/ && print' /var/log/syslog
perl -ne '/\[UFW BLOCK\]/ ? "" : print' /var/log/syslog
awk
awk '!/\[UFW BLOCK\]/' file
Ви також можете використовувати awk
:
awk '!/PATTERN/' log
Я використовую його, коли у мене більше одного "шаблону", і я не хочу використовувати два grep
таких:
... | grep -v foo | grep -v bar
який синтаксис:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"
? "
-e
для визначення декількох шаблонів. grep -v -e 'foo' -e 'bar'
За less
допомогою &
параметра команди можна відфільтрувати, щоб відобразити лише потрібний відповідний візерунок, як показано нижче,
& /PATTERN/
у вашому випадку, якщо ви хочете, щоб лінії фільтра з UFW BLOCK
не відображалися у вихідних даних, ви можете просто скористатися &!
як нижче:
&! /UFW BLOCK/
less
пропонує можливість фільтрувати відображені рядки за малюнком регулярного вираження. Ви можете використовувати цю функцію, ввівши&
слідом за шаблоном, а можна відновити її, ввівши&
самостійно.