首页 > 其他 > 详细

grep 和 awk的buffer

时间:2015-11-10 21:00:35      阅读:251      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!