这篇文章主要讲解了“Grep的多次管道过滤问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grep的多次管道过滤问题如何解决”吧!Grep的多次管道过滤问题在日常的开发过程中,我们
这篇文章主要讲解了“Grep的多次管道过滤问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grep的多次管道过滤问题如何解决”吧!
在日常的开发过程中,我们利用grep可以方便快捷的查找感兴趣的日志内容,极大地提升了开发和排错效率。但是有时候,我们也会遇到一些问题,比如。
crazy.log 是某个进程不断输出日志的文件
我们使用tail -f crazy.log来检测日志的产生
我们在前面的基础上利用管道增加一层过滤筛选感兴趣的内容。
tail -f crazy.log | grep HelloHello,printting from RubyHello,Time is 1566096393Hello,printting from RubyHello,Time is 1566096393Hello,printting from RubyHello,Time is 1566096393Hello,printting from RubyHello,Time is 1566096393Hello,printting from RubyHello,Time is 1566096393
那么当我们再次增加一个过滤是,却没有内容(立即)产生了
➜ /tmp tail -f crazy.log | grep Hello | grep Time
tail -f crazy.log | grep --line-buffered Hello | grep TimeHello,Time is 1566096393Hello,Time is 1566096393Hello,Time is 1566096393Hello,Time is 1566096393Hello,Time is 1566096393
如上,我们使用grep的选项--line-buffered即可。
--line-buffered
Force output to be line buffered. By default, output is line buffered when standard output is
a terminal and block buffered otherwise.
上面的意思是
强制输出结果使用行缓冲
默认情况下,如果标准输入时终端,则使用line bufferred
否则,使用块缓冲,(默认的大小为4096 bytes,因系统和配置而异)
所以,这也就解释了为什么双重grep过滤没有内容,因为没有达到块缓冲限制。
感谢各位的阅读,以上就是“Grep的多次管道过滤问题如何解决”的内容了,经过本文的学习后,相信大家对Grep的多次管道过滤问题如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
--结束END--
本文标题: Grep的多次管道过滤问题如何解决
本文链接: https://lsjlt.com/news/350961.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0