Próbuję zobaczyć plik dziennika przy użyciu tail -f
i chcę wykluczyć wszystkie wiersze zawierające następujące ciągi:
"Nopaging the limit is"` and `"keyword to remove is"
Jestem w stanie wykluczyć jeden taki ciąg:
tail -f admin.log|grep -v "Nopaging the limit is"
Ale jak mogę wykluczyć wiersze zawierające którykolwiek z string1
lub string2
.
grep -v -e def -e jkl
metodzie, która IMHO jest jaśniejsza…grep -Fv -e def -e jkl
co jest jeszcze szybsze!grep -vF $(pgrep myprocess)
-F
dopasowania według literałów (zamiast wyrażenia regularnego)-v
odwraca dopasowanie-e
pozwala na wiele wzorców wyszukiwania (wszystkie dosłowne i odwrócone)źródło
grep -v
wystąpień, jak i sztucznego wymagania wyrażenia regularnego (pozwala na wyraźne określenie wielu ciągów w oddzielnych argumentach). Wyobraź sobie programowe konstruowanie tego wyrażenia regularnego w skrypcie dla ciągów, które mogą zawierać cokolwiek…Inną opcją jest utworzenie listy wykluczeń, jest to szczególnie przydatne, gdy masz długą listę rzeczy do wykluczenia.
Teraz dodaj to, co chcesz wykluczyć
Teraz użyj grep, aby usunąć linie z pliku dziennika i wyświetlić informacje, które nie są wykluczone.
źródło
-v
z-f
(lub że to drugie w ogóle istnieje).grep -v -f <(gen_exclusions.sh) /var/log/admin.log
źródło
źródło
Możesz użyć zwykłego grepa w ten sposób:
tail -f admin.log | grep -v "Nopaging the limit is\|keyword to remove is"
źródło
Grepy mogą być przykute łańcuchami. Na przykład:
źródło