gpt4 book ai didi

linux - 解析非常规命令输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:07:26 26 4
gpt4 key购买 nike

我在 LEDE OS 上运行的 iperf 版本 2 有以下输出。我正在尝试解析输出以获取 Mbits/sec 之前的数字,这是 IPERF session 的平均吞吐量。但是,似乎每列之间的分隔与一定数量的空格或制表符不匹配。此外,iperf 生成的CSV 格式会产生奇怪的结果,因此我不得不依赖iperf 的常规输出。关于如何使用正则表达式或 awk 命令解析输出有什么建议吗?

iperf 命令:

iperf -c 10.0.0.7 -t 10 -i 0.1 -f m

输出:

[  3] 0.00-10.00 sec  1889 MBytes  1584 Mbits/sec  15114/0          0     
2483K/3302 us

最佳答案

您可以使用 grep 来处理这些问题。

iperf -c 10.0.0.7 -t 10 -i 0.1 -f m | grep -o -E '\w+ Mbits/sec'

或者更准确地说:

iperf -c 10.0.0.7 -t 10 -i 0.1 -f m | grep -o -E '[0-9]+ Mbits/sec'

要仅获取数字,您可以使用另一个正则表达式,

iperf -c 10.0.0.7 -t 10 -i 0.1 -f m | grep -Po '[[:digit:]]+ *(?=Mbits/sec)'

上面的[[:digit:]]+[0-9]+是一样的,匹配行中的数字。

对于 MacOS X 中的 FreeBSD grep,-P 将不起作用。而是直接使用 perl

iperf -c 10.0.0.7 -t 10 -i 0.1 -f m | perl -nle 'print $& if m{\d+ *(?=Mbits/sec)}'

关于linux - 解析非常规命令输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43808520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com