【问题标题】:how to convert string to binary integer file using command line under linux如何在linux下使用命令行将字符串转换为二进制整数文件
【发布时间】:2010-09-30 04:28:12
【问题描述】:

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

我想出的唯一方法是

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

有点恶心!

有人知道更好的方法吗?

【问题讨论】:

  • 什么这么讨厌?它是一个有效的命令,使用它
  • 我更喜欢这样的事情,因为它只需要一个工具,就像下面的 perl 示例。

标签: linux binary integer


【解决方案1】:

一个稍微简单的方法是:

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

【讨论】:

    【解决方案2】:

    好吧,看到马克威廉姆斯似乎已经离开了,我将发布他的答案的更正版本

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

    【讨论】:

      【解决方案3】:

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

      echo '1234' | perl -e 'print pack("nn", 0,&lt;STDIN&gt;);' &gt; int

      【讨论】:

      • 所以我真正想要的是 pack("N",)
      • 是的,很高兴你发现了我的错误,很抱歉我没有接受我自己的建议并先咨询 perldoc。
      猜你喜欢
      • 2015-03-30
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多