바이너리 파일을 텍스트 형식으로 가져와야 합니다. 몇 년 전에 저는 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