2014-04-30 20 views
7

Tail ma następujące opcje:Ogon -f + grep?

-f  The -f option causes tail to not stop when end of file is reached, but rather to wait for additional data to be appended to the 
      input. The -f option is ignored if the standard input is a pipe, but not if it is a FIFO. 

Chciałbym tylko grep dla something na wyjściu ogonowej.

tail -f <FILE> | grep <SOMETHING> 

Problem polega na tym, że uruchamia się grep tylko raz i jest wykonywany. Żadne inne wyjście nie dzieje się. Jak mogę sprawić, aby grep działał poprawnie z -f?

+5

Często robię dokładnie to, co opisujesz, i to działa. Komenda 'grep' nie kończy się, dopóki nie zakończy się proces' tail -f', ale oczywiście nie generuje żadnego wyjścia, dopóki coś zawierające wzorzec nie zostanie dołączone do pliku. –

+2

Mogę potwierdzić to samo na kilku platformach. Nigdy nie miałem problemów z używaniem tail + grep dokładnie tak, jak to opisano tutaj. Na jakiej platformie masz problemy? –

+1

'Problem polega na tym, że uruchamia się grep tylko raz i jest wykonywany" nie, to nie jest w porządku. – anubhava

Odpowiedz

6

Jeśli jest to plik dziennika, może zostać obrócony. Następnie przestanie podawać dane.
Nie zatrzyma się, jeśli plik zostanie obrócony.

tail --follow=name /var/log/syslog | grep "some data"