Я пытаюсь отфильтровать вывод параметра avgserv из строки read, используя awk.
Вывод по умолчанию моей команды iostat: iostat -D hdisk0
выглядит следующим образом:
bash-4.4$ iostat -D hdisk0
System configuration: lcpu=32 drives=9 paths=126 vdisks=0
hdisk0 xfer: %tm_act bps tps bread bwrtn
0.0 3.0K 0.1 98.3 2.9K
read: rps avgserv minserv maxserv timeouts fails
0.0 0.8 0.0 0.0 0 0
write: wps avgserv minserv maxserv timeouts fails
0.1 2.2 0.0 0.0 0 0
queue: avgtime mintime maxtime avgwqsz avgsqsz sqfull
0.0 0.0 0.0 0.0 0.0 0.0
--------------------------------------------------------------------------------
Используя: iostat -D hdisk0 | awk '/avgserv/'
Мне удалось напечатать строки, которые соответствуют: avgserv
bash-4.4$ iostat -D hdisk0 | awk '/avgserv/'
read: rps avgserv minserv maxserv timeouts fails
write: wps avgserv minserv maxserv timeouts fails
Но,
Во-первых, я возвращаю только заголовки без фактических значений.
Во-вторых, мне нужно вернуть параметр avgserv только для строки read. Не для строки записи.
Мой окончательный вывод должен содержать только значение параметра avgserv и только для строки read:
0.8
После некоторого копания мне удалось вернуть только параметр avgserv, используя: iostat -D hdisk0 | awk '/avgserv/ {print $3}'
Но тем не менее, я получаю требуемый параметр для обеих строк (чтение и запись) и снова без фактического значения.