我正在尝试获取具有十六进制数字的文件的内容并将该数字转换为二进制并输出到文件。
这是我正在尝试但没有得到二进制值的方法:
xxd -r -p Hex.txt > Binary.txt
Hex.txt的内容是:ff
我也尝试过 FF 和 0xFF,但我只想使用 ff,因为我从中提取信息的设备具有这种格式。
而不是应该是 11111111 ,我得到了上面 2 个点的 y 。
如果我将其更改为 ee,我会得到一个带有 2 个点的 i。它似乎读得很好,但根据我在 xxd -r -p 命令上读到的内容,它没有以正确的格式输出。
我发现将十六进制转换为二进制的其他方法要么也不起作用,要么是一个相当大的 Bash 脚本,似乎没有必要做我认为简单的任务。
这也给了我带有 2 个点的 y。
$ for i in $(cat Hex.txt) ; do printf "\x$i" ; done > Binary.txt
出于某种原因,我找到的几乎每个解决方案都给了我这种格式,而不是人类可读的二进制值,带有 1 和 0。
任何帮助表示赞赏。我计划在脚本中使用它来使用 curl 从 Digital Loggers 设备中提取继电器值,并为 Home Assistant 提供一个可读文件来记录继电器状态。Digital Loggers curl cmd 使用十六进制一次给出所有 8 个继电器的状态,而不是能够拉出特定继电器的状态。