n個のファイル間の個々の違いを知りたいです。次のようになります。
parallel --tag 'diff {1} {2} | wc -l' ::: * ::: *
ここで大きな問題は、バイナリファイルの場合、1つの巨大な行が短い行と同じように計算されることです。
n個のファイルのファジーdiffを生成する方法は?
答え1
ssdeep
ハッシュファイル生成の場合:
ssdeep `find . -type f` > hash
これにより、90% <= 類似性 < 100% のペアが提供されます。
ssdeep -m hash `find . -type f` | grep -E '9[0-9].$'
これは、長いセグメント(ファイルサイズの約1%ブロック)が同じ場合にのみ機能します。