sed
이 작업 을 에서 수행 할 수 있는지 알아내려고 노력했지만 tr
찾을 수 없습니다.
모든 바이트에 상위 비트가 설정된 오래된 Apple II의 파일이 많이 있습니다. Mac에서는 이로 인해 횡설수설이 발생합니다. 물론, 80달러에 각 바이트를 XOR하는 프로그램을 작성할 수 있지만 UNIX에서 이를 수행할 수 있는 방법이 있어야 한다고 생각했습니다!
어떤 아이디어가 있나요?
답변1
bbe
"sed와 유사한 바이너리 파일 편집기"입니다. 데비안에서는 bbe
패키지에 들어 있습니다. Mac에서 쉽게 사용할 수 있는지는 모르겠습니다.
0x7f
이는 입력의 각 바이트에 대해 이진 AND를 수행합니다.
bbe -e '& \x7f'
사용 예:
<input_file bbe -e '& \x7f' >output_file
답변2
Perl이 구출하러 옵니다!
perl -wpe '$_ &= "\x7f" x length' < file
파일을 한 줄씩 처리하려면(예: 파일이 너무 커서 메모리에 맞지 않는 경우) 16진수 줄 구분 기호를 지정합니다.
perl -0x8d ...
(Apple II에서 0x0d가 개행 문자인지 확실하지 않으므로 필요한 경우 값을 수정하십시오.)