【发布时间】:2020-03-15 03:01:17
【问题描述】:
我正在尝试使用 awk 从 read 行过滤参数 avgserv 的输出。
我的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}'
但是, 我得到了两条线(读取和写入)所需的参数,但又没有实际值。
【问题讨论】: