Odpowiedzi:
Opcja odwracania dopasowania wzorca -vdla grepjest naprawdę pomocna w tym:
grep -v 'UFW BLOCK' /var/log/syslog
Spowoduje to wyświetlenie wszystkich wierszy niezawierających UFW BLOCK. Ponieważ grepdomyślnie używane są podstawowe wyrażenia regularne, włączenie nawiasów spowoduje wyszukanie dowolnego z pojedynczych znaków „UFW BLOCK”, w tym spacji. Prawdopodobnie skończysz bez wyjścia. Jeśli chcesz się upewnić, że wokół łańcucha znajdują się nawiasy klamrowe, ucieknij przed nimi \[UFW BLOCK\]lub skorzystaj z -Fopcji grepwłączenia tylko stałych ciągów znaków (dzięki Zanna i Steeldriver za radę na ten temat):
grep -Fv '[UFW BLOCK]' /var/log/syslog
Możesz ułatwić przeglądanie, przesyłając dane wyjściowe do pagera, takiego jak less:
grep -v 'UFW BLOCK' /var/log/syslog | less
Lub przekieruj dane wyjściowe do pliku w katalogu domowym w celu późniejszego przeglądania:
grep -v 'UFW BLOCK' /var/log/syslog > ~/filtered_syslog
fgreppolecenia równoważnego z grep -F.
Możesz użyć dowolnego narzędzia z funkcjami edycji. Otrzymałeś już rozwiązania za pomocą grepi sedoto kilka innych opcji. Wszystkie one mogą być łatwo przekierowane do lesslub moreczy cokolwiek innego.
Perl
perl -ne 'print unless /\[UFW BLOCK\]/' /var/log/syslog
Ponieważ jest to 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
Możesz także użyć awk:
awk '!/PATTERN/' log
Używam go, gdy mam więcej niż jeden „wzór” i nie chcę używać dwóch greptakich jak:
... | grep -v foo | grep -v bar
której składnia to:
awk '!/PATTERN/ && !/PATTERN2/' log
grep -Ev "foo|bar"?
-edo zdefiniowania wielu wzorów. grep -v -e 'foo' -e 'bar'
lessoferuje możliwość filtrowania wyświetlanych linii po wzorcu wyrażenia regularnego. Możesz użyć tej funkcji, wpisując,&a następnie wzorzec, i możesz cofnąć, pisząc&samodzielnie.