
영화 산업에서는 iXML RIFF 청크에 메타데이터가 포함된 WAV 오디오 파일을 갖는 것이 일반적입니다. 이 메타데이터를 읽는 쉬운 방법 중 하나는 BBEdit, Notepad++ 또는 TextEdit과 같은 텍스트 편집기에서 WAV 파일을 여는 것입니다. 하지만 명령줄을 사용 cat
하거나 tail
작동하지 않으면 쓰레기 문자만 표시됩니다. 중요한 경우 macOS 10.13을 사용하고 있습니다. cat
이러한 텍스트 편집 앱과 다른 이유는 무엇입니까 ?
다음은 맨 아래에 iXML이 있는 샘플 파일입니다.http://www.gallery.co.uk/ixml/examples/usesEntireiXMLSpec.WAV
답변1
파일을 출력할 때 cat
공백이나 점 또는 다른 종류의 대체 문자를 대체하지 않고 그대로 바이트 단위로 출력합니다. 따라서 .WAV 파일의 앞부분에 있는 바이너리 오디오 샘플 데이터를 출력할 때 해당 바이트 중 일부는 구식 터미널 제어 코드 및 "이스케이프 시퀀스"("ESC" 문자로 시작하는 바이트 시퀀스)와 일치하게 됩니다. 텍스트나 배경색 변경, 터미널 화면 지우기, 터미널 화면 내 커서 위치 변경 등의 작업을 수행하는 데 사용됩니다. 터미널 에뮬레이터(Terminal.app 또는 iTerm2 등)는 일반적으로 텍스트를 표시하는 방식을 벗어나 예측할 수 없는 방식으로 수행되는 제어 코드 및 이스케이프 시퀀스를 따르려고 합니다.
많은 터미널 기반 도구에는 순수 인쇄 가능한 ASCII 텍스트와 일부 이진 데이터가 혼합된 파일을 처리할 수 있는 옵션이 있습니다. 예를 들어, ASCII 제어 문자 대신 인쇄 가능한 시퀀스를 대체할 수 있는 옵션이 cat
있습니다 . , , 등도 -v
있습니다 . , 및 같은 도구를 사용하여 파일의 이진 데이터 중간에서 ASCII XML 데이터를 추출할 수도 있습니다.vis(1)
od(1)
hexdump(1)
strings(1)
sed(1)
grep(1)
awk(1)
strings(1)
이러한 옵션 중에서 가장 유망한 옵션이 될 수 있다고 생각합니다 . 인쇄 가능한 ASCII 문자의 중장기 중단 없는 실행(문자열)을 찾기 위해 파일을 검색하고 찾은 문자열을 자동으로 출력합니다. 따라서 XML은 순전히 인쇄 가능한 ASCII이므로 strings(1)
모든 바이너리 오디오 데이터를 건너뛰고 모두 인쇄해야 합니다.