Возможно ли захватить последнюю строку wget?

#linux #bash #unix #terminal #grep

#linux #bash #unix #терминал #grep

Вопрос:

 $ wget --output-document=/dev/null http://website.com/file.jpg

Resolving speedtest.sea01.softlayer.com... 67.228.112.250
Connecting to speedtest.sea01.softlayer.com|67.228.112.250|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1986284 (1.9M) [image/jpeg]
Saving to: `/dev/null'

2011-10-02 22:38:04 (337 KB/s) - `/dev/null' saved [1986284/1986284]
  

Все работает выше, но я хотел бы знать, как сохранить последнюю строку в переменной ИЛИ передать ее через GREP -> /((. ))/

(Я пытаюсь проанализировать среднее значение KB / s)

Комментарии:

1. Почему бы вам не использовать реальную программу тестирования скорости вместо wget ?

2. Что вы получите, если передадите ее tail -1 ?

3. @Borealid: Можете ли вы предложить реальную программу тестирования скорости?

4. @Gabe ab Инструмент будет служить. Если вы проводите сквозное тестирование, я обычно использую iperf , что замечательно.

Ответ №1:

Вы можете перенаправить вывод команды. Например:

 $ wget --output-document=/dev/null http://website.com/file.jpg 2>amp;1 | tee /tmp/somefile
$ tail -n 1 /tmp/somefile
  

Комментарии:

1. Или вы можете использовать -o option вместо перенаправления: wget --output-document=/dev/null -o /tmp/somefile

Ответ №2:

Если у вас установлен apache, вы можете использовать Apache HTTP server benchmarking tool:

 ab -n1 http://website.com/file.jpg | grep -F 'Transfer rate:'
  

вы получаете вывод, подобный:

 Transfer rate:          1722.38 [Kbytes/sec] received
  

Ответ №3:

 wget -O /dev/null  http://website.com/file.jpg 2>amp;1 |
sed -n '%/dev/null%!d;s/.*(//;s/).*//p'
  

В моей системе конечная строка вывода пуста, иначе sed адресация была бы проще. Это доступно в Ubuntu из коробки; если ваш sed отличается, вам может потребоваться немного адаптировать сценарий.

( grep -o '(.*)' Сначала я попробовал с, но в выводе ранее в скобках был другой текст wget .)

Комментарии:

1. В качестве запоздалого отступления, curl как правило, более универсален и удобен для написания сценариев. Может быть, попробовать variable=$(curl -S -o /dev/null -w '%{speed_download}' http://url.example.net/file.jpg)