다운로드 속도 만 출력하기 위해 speedtest-cli의 결과를 잘라내는 방법은 무엇입니까?


8

speedtest 다운로드 속도 결과를 indicator-sysmonitor 에 주기적으로 표시하고 싶습니다 .

speedtest-cli를 실행하면 출력이 다소 줄어 듭니다.

$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s 

다운로드 속도 수치만으로 출력을 더욱 트리밍 할 수있는 방법이 있습니까?


--no-upload옵션을 사용 하여 업로드를 표시하지 않을 수도 있습니다.
αғsнιη

답변:


11

speedtest-cli파이썬 프로그램 및 라이브러리와 마찬가지로 다운로드 테스트 만 수행하고 출력을 인쇄하는 최소한의 대체 프로그램을 만드는 것은 매우 쉽습니다.

편집기를 열고 다른 이름으로 저장 dl-speedtest.py

import speedtest

s = speedtest.Speedtest()
s.get_config()
s.get_best_server()
speed_bps = s.download()
speed_mbps = round(speed_bps / 1000 / 1000, 1)
print(speed_mbps)

와 함께 실행 python dl-speedtest.py

이것은 요청에 따라 소수점 이하 1 자리로 반올림 된 부동 소수점 숫자 Mbps 결과를 bps로 나타냅니다.

이것이 작동하기위한 speedtest-cli의 최소 버전은 1.0.0 pip install speedtest-cli --upgrade입니다. 업그레이드하는 데 사용해야 할 수도 있습니다 .


아름다움, 감사합니다! @dessert의 답변만큼이나 이것이 효율성으로 인해 결국 사용했습니다. 나는 몇 분마다 그것을 폴링하고 있으므로 불필요한 호출에서 지방을 다듬는 것이 나에게 유익합니다.
Adam

@Adam 질문을 편집 한 다음 그에 따라 변경해야합니다. 제목이 현재이 답변과 일치하지 않습니다.
디저트

12

그것은 직업입니다 awk:

speedtest-cli --simple | awk 'NR==2{print$2}'      # just the numeral
speedtest-cli --simple | awk 'NR==2{print$2" "$3}' # numeral and unit

설명

  • NR==2 – 줄을 2
  • {print$2} – 두 번째 열을 인쇄합니다 (기본적으로 공백으로 구분됨)
  • {print$2" "$3} – 두 번째 열 뒤에 공백과 세 번째 열을 인쇄하십시오.

sed그것의 조금 더 복잡 :

speedtest-cli --simple | sed '/D/!d;s/.* \(.*\) .*/\1/' # just the numeral
speedtest-cli --simple | sed '/D/!d;s/[^ ]* \(.*\)/\1/' # numeral and unit

설명

  • /D/!d– 포함 된 행을 검색하고 그 행을 빼지 D않고 ( !) d다른 행을 찾습니다
  • s/A/B/substitute AwithB
  • .* – 모든 것을 가져 가라
  • [^ ]*^공간이 아닌 모든 것을 가져 가라
  • (공백 문자) – 리터럴 공간
  • \(…\) -모든 것을 안에 넣고 그룹으로 저장
  • \1 – 그룹 1의 내용을 얻는다

1

이것은 또한 작동합니다 :

speedtest-cli --simple | grep -E "Download:\s*" | sed -r 's/Download:\s*//'

1

당신은 이것을 시도 할 수 있습니다 :

speedtest-cli --simple | grep "Download: " | sed "s/Download: //g"

2
grep와 함께 사용 하는 대신 식 끝에 다음과 같이 sed간단히 사용 sed -n하고 추가 할 수 있습니다 . pspeedtest-cli --simple | sed -nr 's/Download:\s*//p'
Ruslan

1

그리고 다음이 있습니다.

speedtest-cli --simple | grep Download | awk '{print $2}'

라인 선택기가없는 디저트의 첫 번째 옵션처럼.


1
그것은 할 거의 유용 grep ... | awk-speedtest-cli --simple | awk '/Download/{print $2}'
muru
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.