多次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失效,无法做正确输出。
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里,块设备和普通文件,以及管道都是全缓冲的。
虽千万人,吾往矣!
目录
相关文章
|
8月前
|
Perl
在Awk中,直接通过文件作为输入
在Awk中,直接通过文件作为输入
82 2
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
管道符 | shift + 回车上面内容,统计行数 ls -l /user/bin | wc -l,连续过滤cat test.txt | grep itcast | grep itheima
|
8月前
|
Unix
grep的基本用法
grep的基本用法
64 2
|
8月前
|
Perl
grep的复杂用法
grep的复杂用法
69 3
|
8月前
|
Unix Linux
grep的具体用法
grep的具体用法
76 1
awk 常用的命令样例
以下是一些常用的 awk 命令样例: 1. 打印文件的某列: ``` awk '{print $1}' filename.txt ``` 这个命令会打印文件 `filename.txt` 的第一列。 2. 根据条件筛选行并打印: ``` awk '$3 > 10 {print $1, $2}' filename.txt ``` 这个命令会打印文件 `filename.txt` 中第三列大于 10 的行的第一列和第二列。 3. 计算并打印某列的总和: ``` awk '{sum += $1} END {print sum}' filename.txt ``` 这个命令会计算文件 `file
138 0
|
索引
$.grep() 的用法
$.grep() 的用法
351 0
$.grep() 的用法