mosquitto_sub 在二进制消息中显示字节之间的空格的格式是什么?

问题描述 投票:0回答:1

此选项不会在二进制消息中的字节之间产生间距:

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 数据?.

formatting mqtt mosquitto
1个回答
0
投票

目前在 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
© www.soinside.com 2019 - 2024. All rights reserved.