• 多次grep 没有看到输出


    tail -f xxx.log | grep aaaa | grep bbbb 发现没有日志输出
    但log中的那条记录包含aaaa 和 bbbb,就是说tail  -f xxx.log | grep aaaa可以输出,tail -f xxx.log | grep bbbb可以输出
     
    对日志记录做多次grep过滤输出,格式如下:
    tail -f log | grep xxx | grep yyy
    发现grep失效,无法做正确输出。google研究了一下,原因如下:
    管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到输出。
    在操作里  >>file 这个操作也是全缓冲的。调整如下
    tail -f log | grep --line-buffer xxx | grep --line-buffer yyy
    结果输出正常。
    grep当带上了 --line-buffer 的时候,每输出一行,就刷新一次。
    在unix里,块设备和普通文件,以及管道都是全缓冲的。
  • 相关阅读:
    Python with
    Python else
    Python list
    The Python Debugger Pdb
    RPM 包
    yum
    OpenStack I18N
    Python unittest
    MySQL 行格式
    MySQL 行溢出数据
  • 原文地址:https://www.cnblogs.com/jwentest/p/8186634.html
Copyright © 2020-2023  润新知