如何通过分页来连续的stream

我发布这个超级用户,但没有采取: https : //superuser.com/questions/832578/how-to-grep-a-continuous-stream-with-paging

我想要一个日志文件,并过滤掉一些不相关的日志条目,比如INFO级别的日志条目。 上面的堆栈溢出的答案让我的一部分的方式:

$ tail -f php_error_log | grep -v INFO 

我想要的下一个部分是在这个stream中分页,比如less。 lessF +连续stream的作品,但我不能应用于grep。 我怎样才能做到这一点?


自从发布了这个问题后,我发现, less等待EOF出现,并挂起,直到它收到( 源 )。 这解释了为什么试图跟随pipe道不工作。 我剽窃了一个简短的脚本,不经意地做我想做的事情:

 #!/bin/bash tail -f /data/tmp/test.txt | grep --line-buffered foo > /data/tmp/foo & pid=$! echo $pid sleep 1 less +F /data/tmp/foo kill $pid rm /data/tmp/foo 

我相信有可能更优雅地做到这一点,也许与临时文件,自动清理没有直接的互动。

这个怎么样:

 grep -V INFO php_error_log | less +F 

或者,您可以运行multitail php_error_log ,然后一旦multitail启动,请按e并按照提示添加正则expression式来过滤。 为了持续监控一个或多个日志文件,multitail是一个很好的解决scheme。