Linux

將二進制模式轉換為文本模式和反向選項

  • January 25, 2021

我將一個簡單的二進製文件轉換為一個文本文件:

od –t x1 Check.tar | cut –c8- > Check.txt

其內容類似於:

64 65 76 2f 6e 75 6c 6c 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[...]

相反的方法是什麼——將 Check.txt 轉換為 Check.tar 作為原始文件?

od -An -vtx1 Check.tar > Check.txt

您需要-vod將壓縮相同字節的序列。

反過來:

LC_ALL=C tr -cd 0-9a-fA-F < Check.txt | xxd -r -p > Check.tar

或者:

perl -ape '$_=pack "(H2)*", @F' Check.txt > Check.tar

如果您的目的是通過僅支持 ASCII 文本的通道傳輸文件,那麼可以使用專用工具,例如uuencode

tar cf - myfiles.* | xz | uuencode myfiles.tar.xz | that-channel 

並在另一端恢復這些文件:

uudecode < file.uu

將重新創建myfiles.tar.xz.

或者:

uudecode -o - < file.uu | xz -d | tar xf -

提取文件。

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