Я хотел бы периодически отображать мой результат скорости самой быстрой загрузки в индикатор-системном мониторе .
Speedtest-Cli имеет несколько обрезанный вывод, если вы запускаете
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
Есть ли способ урезать вывод еще больше, вплоть до цифры скорости загрузки?
--no-upload
опцию, чтобы не отображать загрузку либо.Ответы:
Как
speedtest-cli
и программа и библиотека на python, довольно легко создать минимальную альтернативную программу, которая выполняет только тест загрузки и печатает вывод.Откройте редактор, сохраните как
dl-speedtest.py
бежать с
python dl-speedtest.py
Это дает результат в
бит / с, как число с плавающей запятой,Мбит / с, округленное до одного десятичного знака в соответствии с запросомМинимальная версия speedtest-cli для этого - 1.0.0. Я думаю, что вам может потребоваться
pip install speedtest-cli --upgrade
обновление.источник
Это работа для
awk
:Пояснения
NR==2
- взять линию2
{print$2}
- напечатать второй столбец (по умолчанию разделенный пробелами){print$2" "$3}
- напечатать второй столбец, затем пробел и третийС
sed
этим немного сложнее:Пояснения
/D/!d
- искать строки, содержащиеD
и не (!
)d
выбирать их, но каждую другую строкуs/A/B/
-s
ubstituteA
сB
.*
- возьми все[^ ]*
- взять все, что не (^
) пробел␣
(пробел) - буквальное пространство\(…\)
- взять все внутри и сохранить как группу\1
- получить содержание группы 1источник
Это также будет работать:
источник
Вы можете попробовать это:
источник
grep
комбинировать сsed
, вы можете просто использоватьsed -n
и добавлятьp
в конце выражения, напримерspeedtest-cli --simple | sed -nr 's/Download:\s*//p'
.И тогда есть:
Как первый вариант десерта, хотя без селектора строки.
источник
grep ... | awk
-speedtest-cli --simple | awk '/Download/{print $2}'