从linux shell中的文本文件生成二进制文件

时间:2012-09-23 08:02:58

标签: bash

我有一个文本文件a.txt,其中每行包含2个数字,如下所示:

1234 5678

现在我想将a.txt的内容从文本转换为二进制,这意味着数字不再是文本,而是二进制表示,可以od -tu4查看。

我如何通过bash

来实现这一目标

1 个答案:

答案 0 :(得分:5)

这是一个使用AWK执行您想要的shell脚本。将以下内容放入文件(hex2bin.awk):

#!/usr/bin/awk -f
function dec2bin(n){
  for(i=0;i < 4; i++){
    printf("%c", n % 256);
    n = int(n / 256);
  }
}
{ dec2bin($1); dec2bin($2);}

使文件可执行(chmod a+x hex2bin.awk

然后运行它:

./hex2bin.awk a.txt | od -tu4
0000000              1234            5678                                
0000010

这读取两列以ASCII表示的十进制数字,并将它们打印成32位小端二进制文件。