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-uploadopción para no mostrar la carga tampoco.Respuestas:
Como
speedtest-clies 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.pycorre con
python dl-speedtest.pyEsto 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 --upgradepara 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
sedesto es un poco más complicado:Explicaciones
/D/!d- busca líneas que contenganDy no las elijas (!)d, pero todas las demás líneass/A/B/-ssustituirAconB.*- 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
grepcombinarse consed, simplemente puede usarsed -ny agregarpal 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}'