awk + не может вырезать поле из iostat - PullRequest
1 голос
/ 24 февраля 2020

когда я делаю следующее, то мы получаем вывод

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

почему?

1 Ответ

4 голосов
/ 24 февраля 2020

Не могли бы вы попробовать следующее.

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:

fflu sh ([файл]) Flu sh любые буферы, связанные с открытый выходной файл или файл канала. Если файл отсутствует или является пустой строкой, то flu sh все открытые выходные файлы и каналы.

...