如何在Linux下使用命令行将字符串转换为二进制整数文件

3
我希望能够将一个以字符串表示的整数,例如“1234”,转换为一个名为int的文件,其中包含一个32位大端整数,其值为1234。
我想到的唯一方法是类似于:
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int

这有点不好!

有人知道更好的方法吗?


这是一个很厉害的命令,可以使用它。 - Pyrolistical
我更喜欢这样的事情只需要一个工具,就像下面的perl示例一样。 - Patrick_O
3个回答

5
稍微简单一些的方法是:
printf "0: %08X" 1234 | xxd -r > int

3

好的,既然Mark Williams似乎失踪了,我将发布他回答的更正版。

echo 1234 | perl -e 'print pack("N", <STDIN>); > int

0

在我的系统上,这似乎会产生相同的输出。请务必检查perldoc -f pack

echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int


所以我真正想要的是 pack("N",<STDIN>)。 - Patrick_O
是的,很高兴你发现了我的错误,对于我没有听从自己的建议并首先查阅Perldoc感到抱歉。 - mark williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接