bash에서 mqtt 하위 데이터를 일반 데이터(pd)로 터널링하는 방법

bash에서 mqtt 하위 데이터를 일반 데이터(pd)로 터널링하는 방법
mosquitto_sub -v -h 127.0.0.1 -p 1883 -t 'gyro' | sed 's/[^ ]* //' | pdsend 3000 localhost udp

이 명령은 아무것도 출력하지 않습니다. 그리고 mqtt를 통해 받은 값을 출력해야 합니다.

이것이 없으면 sed 's/[^ ]* //'다음과 같이 출력됩니다:gyro 23

출력으로 나는 (자이로 스코프 없이) 단순한 숫자를 원합니다 :)

답변1

23출력에서만 인쇄gyro 23

옵션 1:숫자만 인쇄하려면 sed를 사용하세요.

mosquitto_sub -v -h 127.0.0.1 -p 1883 -t 'gyro' | sed 's/[^0-9]//g'

옵션 2:awk를 사용하여 두 번째 필드 인쇄23

mosquitto_sub -v -h 127.0.0.1 -p 1883 -t 'gyro' | awk '{print $2}'

관련 정보