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

发布于 2024-07-11 00:01:40 字数 219 浏览 5 评论 0原文

我想要的是获取一个表示为字符串的整数,例如“1234”,并将其转换为名为 int 的文件,其中包含一个 32 位大端整数,值为 1234。

我想出的唯一方法这样做有点

echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int

令人讨厌!

有谁知道更好的方法吗?

What i want is to take an integer represented as a string, for example "1234", and convert it to a file called int, containing a 32-bit big endian integer, with the value 1234.

The only way I have figured out to do this is something like

echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int

which is a bit nasty!

Does anyone know a better way?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏了南城 2024-07-18 00:01:40

稍微简单一点的方法是:

printf "0: %08X" 1234 | xxd -r > int

A slightly simpler way would be:

printf "0: %08X" 1234 | xxd -r > int
‖放下 2024-07-18 00:01:40

好吧,看到马克·威廉姆斯似乎擅离职守,我将发布他答案的更正版本

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

ok well seeing that mark williams seems to have gone awol i will post the corrected version of his answer

echo 1234 | perl -e 'print pack("N", <STDIN>); > int
琴流音 2024-07-18 00:01:40

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

回显'1234' | perl -e '打印包("nn", 0,);' > 整数

this appears to produce the same output on my system. be sure to check perldoc -f pack.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文