从终端中的 wget 输出解析下载速度

Parse download speed from wget output in terminal

我有以下命令

sudo wget --output-document=/dev/null http://speedtest.pixelwolf.ch 输出

--2016-03-27 17:15:47-- http://speedtest.pixelwolf.ch/
Resolving speedtest.pixelwolf.ch (speedtest.pixelwolf.ch)... 178.63.18.88, 2a02:418:3102::6
Connecting to speedtest.pixelwolf.ch (speedtest.pixelwolf.ch) | 178.63.18.88|:80... connected.
HTTP Request sent, awaiting response... 200 OK
Length: 85 [text/html]
Saving to: `/dev/null`

100%[======================>]85     --.-K/s in 0s

2016-03-27 17:15:47 (8.79 MB/s) - `dev/null` saved [85/85]

我希望能够从最后一行解析 (8.79 MB/s) 并将其存储在文件中(或者我可以通过任何其他方式将其轻松放入本地 PHP 文件) ,我试图通过将命令更改为 --output-document=/dev/speedtest 来存储完整输出,但这只是将 "Could not reach website" 保存在文件中,而不是命令的终端输出。

不太确定从哪里开始,所以任何帮助都会很棒。

不确定它是否有帮助,但我的意图是让这个实例中的存储值 (8.79) 由 PHP 文件读取并在那里处理,每 30 秒我'将通过以下方式实现: while true; do (run speed test and save speed variable to a file cmd); php handleSpeedTest.php; sleep 5; done 其中 handleSpeedTest.php 将能够读取该存储的值并相应地处理它。

我将 URL 更改为有效的。将 stderr 重定向到 stdout。使用 grep --only-matching (-o) 和正则表达式。

sudo wget -O /dev/null http://www.google.com 2>&1 | grep -o '\([0-9.]\+ [KM]B/s\)'