我正在尝试使用 awk从读取行过滤参数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参数,仅用于读取行。不是为了写线。
我的结局输出应仅包含avgserv参数的值,并且仅用于读取行:
0.8
经过一番挖掘,我设法使用以下方法仅返回avgserv参数:iostat -D hdisk0 | awk '/avgserv/ {print $3}'
但是,我仍然获得了两条线(读取和写入)所需的参数,并且再次没有实际值。