AWK 또는 SED, 문자열에서 값 검색

AWK 또는 SED, 문자열에서 값 검색

문자열에서 여러 값을 검색해야 합니다(출력: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" 앞에 나타난다고 가정하면 "some number" 뒤에 "/100"이 오는지 확인한 다음 모든 것을 "/"로 잘라낼 수 있습니다.

grep -o '[0-9][0-9]*\/100' your_file | cut -d/ -f1

결과는 다음과 같습니다.

37
57
0

관련 정보