关于Grep的多次管道过滤的问题及解决

 更新时间:2023年03月07日 09:50:19   作者:技术小黑屋  
这篇文章主要介绍了关于Grep的多次管道过滤的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Grep的多次管道过滤问题

在日常的开发过程中,我们利用grep可以方便快捷的查找感兴趣的日志内容,极大地提升了开发和排错效率。但是有时候,我们也会遇到一些问题,比如。

  • crazy.log 是某个进程不断输出日志的文件
  • 我们使用tail -f crazy.log来检测日志的产生
  • 我们在前面的基础上利用管道增加一层过滤筛选感兴趣的内容。
tail -f crazy.log | grep Hello
Hello,printting from Ruby
Hello,Time is 1566096393
Hello,printting from Ruby
Hello,Time is 1566096393
Hello,printting from Ruby
Hello,Time is 1566096393
Hello,printting from Ruby
Hello,Time is 1566096393
Hello,printting from Ruby
Hello,Time is 1566096393

那么当我们再次增加一个过滤是,却没有内容(立即)产生了

➜ /tmp tail -f crazy.log | grep Hello | grep Time

如何解决

tail -f crazy.log | grep --line-buffered Hello | grep Time
Hello,Time is 1566096393
Hello,Time is 1566096393
Hello,Time is 1566096393
Hello,Time is 1566096393
Hello,Time is 1566096393

如上,我们使用grep的选项--line-buffered即可。

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过滤没有内容,因为没有达到块缓冲限制。

以上。

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vmvare虚拟机给ubuntu根目录分区介绍

    Vmvare虚拟机给ubuntu根目录分区介绍

    大家好,本篇文章主要讲的是Vmvare虚拟机给ubuntu根目录分区介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • CentOS Linux服务器安全设置

    CentOS Linux服务器安全设置

    这篇文章主要介绍了阿里云linux服务器安全设置,无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全,下面是CentOS服务器安全设置,供大家参考,需要的朋友可以参考下
    2016-10-10
  • 记一次入侵Linux服务器和删除木马程序的经历

    记一次入侵Linux服务器和删除木马程序的经历

    这篇文章主要介绍了记一次入侵Linux服务器和删除木马程序的经历的相关资料,需要的朋友可以参考下
    2016-02-02
  • gdb调试中设置监控点watch,rwatch,awatch的区别及说明

    gdb调试中设置监控点watch,rwatch,awatch的区别及说明

    这篇文章主要介绍了gdb调试中设置监控点watch,rwatch,awatch的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • linux下日志定时轮询的流程详解

    linux下日志定时轮询的流程详解

    这篇文章主要给大家介绍了关于在linux下日志定时轮询流程的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • Linux Web服务器网站故障分析常用命令

    Linux Web服务器网站故障分析常用命令

    这篇文章主要为大家详细分析了Linux Web服务器网站故障,利用常用命令查看故障,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 详解linux下fsevents模块引起的npm ls报错解决办法

    详解linux下fsevents模块引起的npm ls报错解决办法

    这篇文章主要介绍了详解linux下fsevents模块引起的npm ls报错解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 15张Vim速查表-帮你提高N倍效率

    15张Vim速查表-帮你提高N倍效率

    在Linux上一直使用vim,慢慢熟悉了它的命令,才终于领悟了什么是编辑器之神。最近抽空整理了这份速查表,感兴趣的朋友跟随小编一起看看吧
    2018-10-10
  • linux里daily_routine实例代码详解

    linux里daily_routine实例代码详解

    在本篇文章里小编给大家整理的是关于linux里daily_routine实例代码以及相关知识点内容,有需要的朋友们参考下。
    2019-09-09
  • CentOS 6.5平台本地YUM配置的方法

    CentOS 6.5平台本地YUM配置的方法

    这篇文章主要介绍了CentOS 6.5平台本地YUM配置的方法,较为详细的分析了CentOS本地YUM配置的具体步骤、相关命令与使用技巧,需要的朋友可以参考下
    2018-04-04

最新评论