Ich möchte regelmäßig mein Speedtest-Download-Speed-Ergebnis in Indicator-Sysmonitor anzeigen .
speedtest-cli hat eine etwas reduzierte Ausgabe, wenn Sie ausführen
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
Gibt es eine Möglichkeit, die Ausgabe noch weiter auf die Download-Geschwindigkeit zu reduzieren?
--no-upload
Option verwenden, um den Upload auch nicht anzuzeigen.Antworten:
Da
speedtest-cli
es sich um ein Python-Programm und eine Python-Bibliothek handelt, ist es ziemlich einfach, ein minimales alternatives Programm zu erstellen, das nur einen Download-Test durchführt und die Ausgabe druckt.Öffnen Sie einen Editor und speichern Sie unter
dl-speedtest.py
laufen mit
python dl-speedtest.py
Dies ergibt das Ergebnis in
bps als GleitkommazahlMbps, die wie gewünscht auf eine Dezimalstelle gerundet wirdDie minimale Version von speedtest-cli, damit dies funktioniert, ist 1.0.0. Ich denke, Sie müssen möglicherweise ein
pip install speedtest-cli --upgrade
Upgrade durchführen.quelle
Das ist ein Job für
awk
:Erklärungen
NR==2
- Linie nehmen2
{print$2}
- Drucken Sie die zweite Spalte (standardmäßig durch Leerzeichen getrennt).{print$2" "$3}
- Drucken Sie die zweite Spalte, gefolgt von einem Leerzeichen und der drittenMit ist
sed
es etwas komplizierter:Erklärungen
/D/!d
- Suche nach Zeilen, die sie enthaltenD
und nicht (!
)d
löschen, sondern nach jeder anderen Zeiles/A/B/
-s
ErsatzA
mitB
.*
- Nimm alles[^ ]*
- nimm alles, was kein^
Leerzeichen ist␣
(Leerzeichen) - ein wörtliches Leerzeichen\(…\)
- Nimm alles mit und speichere es als Gruppe\1
- Holen Sie sich den Inhalt von Gruppe 1quelle
Dies wird auch funktionieren:
quelle
Sie können dies versuchen:
quelle
grep
kombinierensed
, können Sie einfach am Ende des Ausdrucks verwendensed -n
und anhängenp
, wie zspeedtest-cli --simple | sed -nr 's/Download:\s*//p'
.Und dann gibt es:
Wie die erste Option des Desserts, jedoch ohne den Zeilenwähler.
quelle
grep ... | awk
-speedtest-cli --simple | awk '/Download/{print $2}'