1

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

1234 5678

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

我怎样才能做到这一点bash

4

1 回答 1

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 位小端二进制。

于 2012-09-23T09:05:02.763 回答