1

テキストファイルa.txtがあり、その中の各行は2つの数字で構成されており、次のようになります。

1234 5678

ここで、a.txtのコンテンツをテキストからバイナリに変換したいと思います。つまり、数値はテキストではなく、で表示できるバイナリ表現になりますod -tu4

どうすればそれを行うことができbashますか?

4

1 に答える 1

5

これは、AWKを使用して必要な処理を実行するシェルスクリプトです。以下をファイル(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で表された10進数の2列を読み取り、それらを32ビットのリトルエンディアンバイナリに出力します。

于 2012-09-23T09:05:02.763 に答える