码迷,mamicode.com
首页 > 其他好文 > 详细

grep 和 awk的buffer

时间:2015-11-10 21:01:52      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

当使用 

tail -f test.log | grep "mode" | awk ‘{print $5}‘命令

或者 tail -f test.log | awk ‘/mode/ {print $5}‘的时候,如果test.log中满足模式mode的数据很少,会发现即便是test.log中新出现了满足mode的行,但是上面两个命令都没有任何输出。

原因在于grep和awk处于效率的考量,会缓存一批数据再输出到标准输出。

grep的--line-buffered选项和awk的fflush(stdout)命令可以使得grep和awk不缓存数据。如:

tail -f test.log | grep --line-buffered "mode" | awk ‘{print $5}‘

tail -f test.log | awk ‘/mode/ {print $5,$6; fflush(stdout)}‘‘

grep 和 awk的buffer

标签:

原文地址:http://www.cnblogs.com/cobbliu/p/4954146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!