此选项不会在二进制消息中的字节之间产生间距:
paul@desktop:~$ mosquitto_sub -t out -F '%x' -v
3031320033340035
3031320033340035
我希望这会起作用:
paul@desktop:~$ mosquitto_sub -t out -F '%3x'
30
30
但它会截断消息。什么是在字节之间进行某种分离的解决方案,例如
30 31 32 00 33 34 00 35
?
顺便说一句,我读过 https://mosquitto.org/man/mosquitto_sub-1.html#outputformat 和 如何显示二进制 MQTT 数据?.
目前在 mosquitto_sub 中不可能做到这一点,但是可以使用 sed 命令来完成:
mosquitto_sub -h test.mosquitto.org -t \$SYS/broker/uptime -F %x | sed 's/\(..\)/\1 /g'
话虽如此,
precision
格式选项目前未用于十六进制有效负载,因此添加对mosquitto_sub -F %.4x ...
的支持似乎是一个好主意。这将出现在下一个(姗姗来迟的)功能版本中。
例如:
$ mosquitto_sub -F %.4x ...
3733 3238 3738 2073 6563 6f6e 6473