Mam dziennik, który stale wyrzuca dane na ekran. Muszę złapać linię zawierającą określony ciąg, wydrukować go i następne 5 wierszy. Łatwo to zrobić z plikiem statycznym, takim jak: grep -A 5 „XXX” / mnt / flash / logs / system / messages
Mam dziennik, który stale wyrzuca dane na ekran. Muszę złapać linię zawierającą określony ciąg, wydrukować go i następne 5 wierszy. Łatwo to zrobić z plikiem statycznym, takim jak: grep -A 5 „XXX” / mnt / flash / logs / system / messages
Odpowiedzi:
tail -f /mnt/flash/logs/system/messages | grep -A 5 "XXX"
O tail -f:
-f
Jeśli plik wejściowy jest zwykłym plikiem lub operand pliku określa FIFO, nie kończ po skopiowaniu ostatniej linii pliku wejściowego, ale odczyt i kopiowanie kolejnych bajtów z pliku wejściowego, gdy staną się dostępne. […]
Już wiesz grep -A. Pamiętaj, że nie jest przenośny ( -A nie jest wymagany przez POSIX ) podczas tail -f jest.
Ponieważ często obraca się dzienniki, może się okazać find --follow=name podejście bardziej przydatne. Twój find może go wspierać lub nie, sprawdź man 1 find w twoim systemie operacyjnym.