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

时间:2016-03-27 16:22:31

标签: shell terminal wget

我有以下命令

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来完整输出但是这只是在文件中保存了“无法访问网站”,而不是命令的终端输出。

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

不确定它是否有帮助,但我的意图是这个实例中的存储值(8.79)由PHP文件读取并在那里处理,每30秒我将通过:{{ 1}}其中handleSpeedTest.php将能够读取该存储的值并相应地处理它。

1 个答案:

答案 0 :(得分:2)

我将网址更改为有效的网址。将stderr重定向到stdout。使用grep --only-matching(-o)和regex。

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