バイナリ ファイルをテキスト形式に変換する必要があります。数年前、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
答え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