grep 和 awk的buffer
2024-09-17 03:38:33
当使用
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)}''
最新文章
- iOS开发中的权限
- Spring入门_04_注解注入
- Python多线程(1)——介绍
- MYSQL 编码方式 ------导入 .sql 文件 报编码错误
- Js获取当前日期时间及时间相关操作
- Java Day 08
- MATLAB绘图与图形处理
- APCS
- 基于Karma和Jasmine的AngularJS测试
- Namespace declaration statement has to be the very first
- mysql 时间戳按指定格式(Y-m-d)取出
- 记一次kali和win8.1的双系统修复!!
- Linux系统安全需要注意的一些问题
- java之内部类
- macOS下配置scapy环境
- windows中通过bat批处理打开exe文件
- itcast-spring-三大框架整合
- CVPR 2019 | 用异构卷积训练深度CNN:提升效率而不损准确度
- [JLOI2013]删除物品
- 基于Python自动发送QQ群消息