linux – 如何使用分页来连续流

前端之家收集整理的这篇文章主要介绍了linux – 如何使用分页来连续流前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我把它发布给超级用户但没有接受者: https://superuser.com/questions/832578/how-to-grep-a-continuous-stream-with-paging

我想获取一个日志文件并过滤掉一些不相关的日志条目,比如INFO级别的条目.上面的Stack Overflow回答让我了解了一部分:

$tail -f PHP_error_log | grep -v INFO

我想要的下一篇文章就是在这个流中进行分页,例如less.较少F适用于连续流,但我不能将其应用于grep.我怎么能做到这一点?

自从发布了这个问题以来,我一直在研究这个问题并发现等待EOF出现的次数较少,并且在收到它之前一直挂起(source).这解释了为什么尝试跟随管道不起作用.我破解了一个简短的脚本来做我想做的事,非常优雅:

#!/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并按照提示添加正则表达式进行过滤.为了随着时间的推移连续监视一个或多个日志文件,multitail是一个很好的解决方案.

猜你在找的Linux相关文章