Мне нужно преобразовать двоичные файлы в текстовый формат. Несколько лет назад я использовал 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