Saya ingin menampilkan hasil unduhan speedtest secara berkala di indikator-sysmonitor .
speedtest-cli memiliki output yang agak terpangkas jika Anda menjalankan
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
Apakah ada cara untuk memangkas output lebih banyak lagi, turun ke hanya angka kecepatan unduhan?
--no-upload
opsi untuk tidak menampilkan unggahan.Jawaban:
Seperti halnya
speedtest-cli
program python dan pustaka, cukup mudah untuk membuat program alternatif minimal yang hanya melakukan tes unduhan dan mencetak hasilnya.Buka editor, simpan sebagai
dl-speedtest.py
jalankan bersama
python dl-speedtest.py
Ini memberikan hasil dalam
bps, karena angka floating pointMbps dibulatkan menjadi satu desimal seperti yang dimintaVersi minimal speedtest-cli agar ini berfungsi adalah 1.0.0 Saya pikir, Anda mungkin perlu menggunakan
pip install speedtest-cli --upgrade
untuk meningkatkan.sumber
Itu pekerjaan untuk
awk
:Penjelasan
NR==2
- ambil garis2
{print$2}
- cetak kolom kedua (dipisahkan spasi secara default){print$2" "$3}
- cetak kolom kedua diikuti oleh spasi dan yang ketigaDengan
sed
itu sedikit lebih rumit:Penjelasan
/D/!d
- cari baris yang mengandungD
dan jangan hapus (!
)d
, tetapi setiap baris lainnyas/A/B/
-s
ubstituteA
denganB
.*
- ambil semuanya[^ ]*
- ambil semua yang bukan (^
) spasi␣
(karakter spasi) - ruang literal\(…\)
- Ambil semuanya di dalam dan simpan sebagai grup\1
- dapatkan konten grup 1sumber
Ini juga akan berfungsi:
sumber
Anda dapat mencoba ini:
sumber
grep
dikombinasikan dengansed
, Anda cukup menggunakansed -n
dan menambahkanp
di akhir ekspresi, sepertispeedtest-cli --simple | sed -nr 's/Download:\s*//p'
.Dan kemudian ada:
Suka pilihan pertama hidangan penutup meskipun tanpa pemilih garis.
sumber
grep ... | awk
-speedtest-cli --simple | awk '/Download/{print $2}'