Próbuję zbudować skrypt powłoki, aby monitorować niektóre pliki dziennika. Używam polecenie tak:ogon -f do grep do cięcia nie działa prawidłowo
tail -f /var/somelog | grep --line-buffered " some test and p l a c e h o l d e r" | cut -f 3,4,14 -d " "
plik dziennika jest tak:
some test and p l a c e h o l d e r 3
some test and p l a c e h o l d e r 4
some test and p l a c e h o l d e r 5
some test and p l a c e h o l d e r 6
i tak dalej .. Mój problem jest, że wyjście polecenia nie wyświetla ostatni linia
some test and p l a c e h o l d e r 6
aż linii
some test and p l a c e h o l d e r 7
zostanie dodane do dziennika.
Mam nadzieję, że wyjaśniłem mój problem. Czy ktoś może mi pomóc rozwiązać ten problem? Dziękuję :)
Może linie dziennika nie kończą się linią, ale zaczynają się od jednego? W takim przypadku linia 6 nie byłaby kompletna, dopóki linia 7 nie uruchomi się i nie będzie podawana linia. Jeśli spojrzysz na plik dziennika, pokazujący wszystkie znaki, czy widzisz wiersz na końcu ostatniej linii? –
Wyszukaj końcową nową linię ("\ n"), używając 'od -c/var/somelog'. – cdarke
Czy widzisz to samo wyjście z 'tail -f'? Jeśli tak jest, to @David wskazał to poprawnie. – mtk