在bash中,可以使用xxd
命令将二进制数据转换为十六进制,并使用sed
命令将每两个十六进制字符分隔开,然后使用tr
命令将每行的十六进制字符转换为二进制数据。
以下是一行程序的示例:
xxd -p -c1 < 文件名 | sed 's/../& /g' | tr -d '\n' | sed 's/ $/\n/' | xxd -r -p
解释:
xxd -p -c1 < 文件名
:将二进制文件转换为十六进制,并每行一个字符输出。sed 's/../& /g'
:在每两个字符之间插入一个空格,以便后续处理。tr -d '\n'
:删除所有换行符,将所有字符放在一行上。sed 's/ $/\n/'
:将行末的空格替换为换行符,以便后续转换回二进制数据。xxd -r -p
:将十六进制数据转换回二进制数据。这个方法可以将二进制数据拆分成行,并且保持数据的完整性。
领取专属 10元无门槛券
手把手带您无忧上云