Poszukiwanie programu podobnego tail
lub less
pozwalającego mi przeglądać moje dzienniki bez wierszy zawierających określony ciąg znaków. Na przykład wyświetl mój syslog bez [UFW BLOCK]
linii wprowadzania UFW ( ).
command-line
less
John Gr.
źródło
źródło
less
oferuje 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.Odpowiedzi:
Opcja odwracania dopasowania wzorca
-v
dlagrep
jest naprawdę pomocna w tym:Spowoduje to wyświetlenie wszystkich wierszy niezawierających
UFW BLOCK
. Ponieważgrep
domyś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-F
opcjigrep
włączenia tylko stałych ciągów znaków (dzięki Zanna i Steeldriver za radę na ten temat):Możesz ułatwić przeglądanie, przesyłając dane wyjściowe do pagera, takiego jak
less
:Lub przekieruj dane wyjściowe do pliku w katalogu domowym w celu późniejszego przeglądania:
źródło
fgrep
polecenia równoważnego zgrep -F
.Można również użyć
sed
„sd
polecenie, aby usunąć wiersze z wzorem ze strumienia:Uciekamy,
[]
jak zwykle, oznaczają klasę postaci, co oznacza „pasuj do wszystkiego, co jest w środku”źródło
Możesz użyć dowolnego narzędzia z funkcjami edycji. Otrzymałeś już rozwiązania za pomocą
grep
ised
oto kilka innych opcji. Wszystkie one mogą być łatwo przekierowane doless
lubmore
czy cokolwiek innego.Perl
Ponieważ jest to Perl, TIMTOWDI! .
awk
źródło
Możesz także użyć
awk
:Używam go, gdy mam więcej niż jeden „wzór” i nie chcę używać dwóch
grep
takich jak:której składnia to:
źródło
grep -Ev "foo|bar"
?-e
do zdefiniowania wielu wzorów.grep -v -e 'foo' -e 'bar'
Dzięki opcji
less
polecenia&
możliwe jest odfiltrowanie, aby wyświetlić tylko pożądany dopasowany wzór, jak poniżej,w twoim przypadku, jeśli chcesz, aby linie filtru
UFW BLOCK
nie wyświetlały się w danych wyjściowych, możesz po prostu użyć,&!
jak poniżej:źródło