대용량 바이너리 파일에 다른 파일의 내용이 포함되어 있는지 확인하는 방법은 무엇입니까?

대용량 바이너리 파일에 다른 파일의 내용이 포함되어 있는지 확인하는 방법은 무엇입니까?

WAV 파일과 같은 대용량 바이너리 파일이 있는데 이 파일에 더 작은 WAV 파일의 전체 바이트 시퀀스가 ​​포함되어 있을 수 있다고 의심됩니다.

작동하는지 어떻게 확인하나요? 그렇다면 시작 위치를 어떻게 찾을 수 있습니까?

그것은 다음과 같습니다:

$ findguts big.wav small.wav
1234 # the contents of small.wav are found inside big.wav starting at byte #1234

답변1

그리고 perl:

perl -l -0777 -ne '
  print "found at offset $o" if ($o = index($_, <STDIN>)) >= 0
  ' big.wav < small.wav

(두 파일 모두 메모리에 로드되므로 매우 큰 파일로 확장되지 않습니다.)

관련 정보