我有一个大的二进制文件,例如一个 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
(请注意,这两个文件都加载到内存中,因此它不会扩展到非常大的文件)。