与 uuencode/uudecode 功能并行的现代 Linux 命令

与 uuencode/uudecode 功能并行的现代 Linux 命令

我需要将二进制文件转换为文本格式。几年前,我使用过 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 进入。我通常尊重这个限制,但在我的上下文中,*.xls 是我的代码的配置表,所以它是逻辑上就像源代码,但企业 SVN 触发器是物理的 - 如果它是 *.xls,它会被拒绝,所以我会对其进行编码并对 *.txt 文件进行源代码控制。

谢谢!

答案1

知道了:

xxd -p excel.xlsx > excel.xxdp
xxd -p -r excel.xxdp > recover.xlsx
diff excel.xlsx recover.xlsx

答案2

这些(uuencode/uudecode)通常作为以下部分打包:sharutils(另见其名义网站)。

这个问题之前已经有人问过:

答案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

相关内容