Me gustaría mostrar periódicamente mi resultado de velocidad de descarga más rápida en el indicador-sysmonitor .
speedtest-cli tiene una salida algo recortada si ejecuta
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
¿Hay alguna forma de recortar aún más la salida, hasta el número de velocidad de descarga?
--no-upload
opción para no mostrar la carga tampoco.Respuestas:
Como
speedtest-cli
es un programa y una biblioteca de Python, es bastante fácil crear un programa alternativo mínimo que solo realice una prueba de descarga e imprima el resultado.Abrir un editor, guardar como
dl-speedtest.py
corre con
python dl-speedtest.py
Esto da el resultado en
bps, como un número de coma flotanteMbps redondeado a un decimal según lo solicitadoLa versión mínima de speedtest-cli para que esto funcione es 1.0.0. Creo que es posible que deba usar
pip install speedtest-cli --upgrade
para actualizar.fuente
Eso es un trabajo para
awk
:Explicaciones
NR==2
- tomar línea2
{print$2}
- imprime la segunda columna (separada por espacios por defecto){print$2" "$3}
- imprime la segunda columna seguida de un espacio y la terceraCon
sed
esto es un poco más complicado:Explicaciones
/D/!d
- busca líneas que contenganD
y no las elijas (!
)d
, pero todas las demás líneass/A/B/
-s
sustituirA
conB
.*
- toma todo[^ ]*
- toma todo lo que no sea (^
) un espacio␣
(carácter de espacio): un espacio literal\(…\)
- lleva todo dentro y guárdalo como grupo\1
- obtener el contenido del grupo 1fuente
Esto también funcionará:
fuente
Puedes probar esto:
fuente
grep
combinarse consed
, simplemente puede usarsed -n
y agregarp
al final de la expresión, comospeedtest-cli --simple | sed -nr 's/Download:\s*//p'
.Y luego está:
Como la primera opción de postre, aunque sin el selector de línea.
fuente
grep ... | awk
-speedtest-cli --simple | awk '/Download/{print $2}'