0

我想知道如何在 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,但我不知道如何在这个问题中使用。谁能告诉如何使用它?

4

3 回答 3

2

grep就足够了。你可以说:

iperf -c 10.0.0.1 -i 1 -t 100 | grep -Po '[0-9.]*(?= Mbits/sec)'
于 2013-10-30T07:58:13.257 回答
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,抱歉)

于 2013-10-30T08:13:34.190 回答
0

使用awk,您可以执行此操作

iperf -c 10.0.0.1 -i 1 -t 100 | awk '/Mbits\/sec/ {print $8}'
1.05
11.5
31.5
于 2013-10-30T08:27:44.790 回答