我需要將二進位檔案轉換為文字格式。幾年前,我使用 uuencode/uudecode,這很簡單:
uuencode file.xls > file.txt
# Delete file.xls
# Do whatever with file.txt
# Now I need file.xls back
uudecode file.txt > file.xls
但uuencode/uudecode 不在我的系統上,而且當我環顧四周時,yum/rpm 進程很醜陋——這給了我一個線索,也許沒有人再使用它,而是有更現代的東西可以做到這一點。
我查看了 xxd 和 hexdump 但無法讓他們這樣做。可能只是愚蠢的用戶問題。
我可以在 Linux 上使用什麼來做到這一點?希望它是本機安裝中的東西,這樣我就不需要 yum/rpm 它(如果可能的話)。
只是為了您自己的理解,我現在特別想做的是對 .xls 文件進行源代碼控制,但公司工具不允許 *.xls 輸入。是我的程式碼的配置表,所以它是邏輯上就像原始程式碼一樣,但企業 SVN 觸發器是物理的 — 如果它是 *.xls,則會被拒絕,因此我將對它進行編碼並對 *.txt 檔案進行原始程式碼控制。
謝謝!
答案1
知道了:
xxd -p excel.xlsx > excel.xxdp
xxd -p -r excel.xxdp > recover.xlsx
diff excel.xlsx recover.xlsx
答案2
答案3
有一個 python 程式可以用於此目的。
$ python hexdump.py abc.tar > abc.ascii
$ python hexdump.py -r abc.ascii > def.tar
$ md5sum abc.tar def.tar abc.ascii
e4733a492d5ae78d9e163a9ec808b6ae abc.tar
e4733a492d5ae78d9e163a9ec808b6ae def.tar
b56a0ed4d794c0cf6084ddb9e7c862f8 abc.ascii
$ ls -pla abc*
-rw-r--r--. 1 60001 60001 61514 Mar 13 16:08 abc.ascii
-rw-r--r--. 1 60001 60001 12775 Mar 13 15:33 abc.tar