문자열에서 몇 개의 값을 검색해야 합니다(출력:iwconfig wlan0 | grep -i 품질).
Link Quality=37/100 Signal level=57/100 Noise level=0/100
나는 필요하다37~에서링크 품질=37/100,57~에서신호 레벨=57/100그리고0~에서소음 수준=0/100. 동일한 명령에 있을 필요는 없습니다. 내가 하려는 것은 mosquitto_pub를 사용하여 해당 값을 MQTT 서버에 게시하는 것입니다.
어떤 도움이라도 주시면 감사하겠습니다.
답변1
$ iwconfig wlan0 | awk -F'[=/]' 'tolower($0) ~ /quality/{print $2, $4, $6}' file
37 57 0
답변2
GNU grep을 사용하면:
iwconfig wlan0 | grep -i quality | grep -oP '\d+(?=/)'
출력
37
57
0
답변3
관심 있는 숫자가 항상 '/100' 앞에 온다고 가정하면 '/100'이 뒤따르는 '어떤 숫자'를 찾아 '/'까지 모두 잘라낼 수 있습니다.
grep -o '[0-9][0-9]*\/100' your_file | cut -d/ -f1
결과는 다음과 같습니다.
37
57
0