n個のファイルのファジー比較

n個のファイルのファジー比較

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%ブロック)が同じ場合にのみ機能します。

おすすめ記事