我想知道如何只在iperf中显示带宽值。我使用grep,但它显示整行,如下所示:
iperf -c 10.0.0.1 -i 1 -t 100 | grep -i --color Mbit/sec
结果是
[3] 0.0 - 1.0 sec 128 Kbytes 1.05 Mbits/sec
[3] 1.0 - 2.0 sec 128 Kbytes 11.5 Mbits/sec
[3] 2.0 - 3.0 sec 128 Kbytes 31.5 Mbits/sec
我想要的是
1.05
11.5
31.5
我听说过awk,但我不知道如何使用这个问题。谁能说出如何使用它?
答案 0 :(得分:2)
grep
就足够了。你可以说:
iperf -c 10.0.0.1 -i 1 -t 100 | grep -Po '[0-9.]*(?= Mbits/sec)'
答案 1 :(得分:0)
iperf -c 10.0.0.1 -i 1 -t 100 | grep -i --color Mbit/sec | sed -u -n "s/^.*Kbytes \([0-9.,]\{1,\}\) Mbit.*$/\1/p"
如果这是一个流输入,您应该使用sed -n -u
,如果可以删除-u
的文件副本
grep也可以删除,包括"/pattern/ !"
之前"s/"
删除不需要的行(我这里没有访问iperf,抱歉)
答案 2 :(得分:0)
使用awk
,您可以执行此操作
iperf -c 10.0.0.1 -i 1 -t 100 | awk '/Mbits\/sec/ {print $8}'
1.05
11.5
31.5