我试图将从iostat中匹配nvme * hhd的行的值总计为兆字节,然后从第x行到第z行获取总数,在我的情况下为2行。
iostat -m <-- in megabytes
iostat -m | awk '{if($1 ~ /nvme*/ ) print $2, $3, $4}'
------------------
9.38, 0.20, 0.57
13.67, 0.01, 1.60
-------------------
23.05, 0.21, 2.17 <<-- The total
我怎样才能做到这一点?
答案 0 :(得分:4)
尝试:
iostat -m | awk '$1 ~ /nvme*/{a+=$2;b+=$3;c+=$4;print $2, $3, $4} END{print"--------------";print a,b,c}'
$1 ~ /nvme*/
这将选择第一个字段与正则表达式nvme*
匹配的行。我的iostat
不会生成包含nvme
的行。因此,您需要确定这是否真的适合您的案例。
a+=$2;b+=$3;c+=$4
这会保留变量a
,b
和c
中感兴趣的三列的运行总和。
print $2, $3, $4
打印出感兴趣的三列。
END{print"--------------";print a,b,c}
读完所有行后,打印出总数。 print"--------------"
在我的系统上生成一个漂亮的表。如果您的iostat
以不同的格式生成输出,则可能需要相应调整。