首页 > 解决方案 > awk + ​​无法从 iostat 剪切字段

问题描述

当我执行以下操作时,我们会得到输出

iostat -x 1|grep sdb
sdb               0.00    13.65    4.17   11.65   113.72   991.55   139.74     0.24   15.39    3.27   19.73   0.46   0.72
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

现在我想剪切第二个字段,但现在我们没有得到输出

[root@linux1 ~]#   iostat -x 1|grep sdb | awk '{print $2}'

还有,管道没有输出,

iostat -x 1|grep sdb | more

为什么?

标签: linuxbashperlawkiostat

解决方案


请您尝试以下操作。

iostat -x 1 | grep --line-buffered "sdb" | awk '{print $2}'

或者只有awk

iostat -x 1 | awk '/sdb/{print $2;fflush();}'

或者

iostat -x 1 | awk '$1=="sdb"{print $2;fflush();}'

man awk页面:

fflush([file]) 刷新与打开的输出文件或管道文件关联的所有缓冲区。如果文件丢失或者它是空字符串,则刷新所有打开的输出文件和管道。


推荐阅读