Shell

將儲存為 ASCII 的二進制數據轉換為二進制

  • December 7, 2020

我有大量二進制數據以 ASCII 文本形式儲存在一個文件中,如下所示:

0b 0000 0001
0b 0000 0000
0b 1111 0001 
etc

我如何將其轉換為原始二進制比特流,並將其保存到磁碟?

這可以用標準的 unix 工具來完成嗎?

尚未完全充實這一點,但請嘗試以下操作:

$ cat demo.sh
#!/bin/bash

while read bb nibble1 nibble2
do
   byte=$(printf "%s%s" ${nibble1} ${nibble2} )
   hexstr=$(printf '\\\\x%02x' $((2#${byte})) )
   eval printf "$hexstr"
done < infile > outfile

使用您的範例輸入:

$ ./demo.sh

$ xxd outfile
00000000: 0100 f1                                  ...
$ 

引用自:https://unix.stackexchange.com/questions/623229