同一であると思われるがファイル名が異なるファイルを比較するための最良のアプローチを探しています。BeyondCompareのような比較ツールは優れていますが、まだ異なるファイル名を処理していません。別々のフォルダーにあるファイルを比較する場合、どちらかの側に同じ名前のファイルとの比較を試みます。
(私はBeyondCompareで働いていないか、金銭的な利害関係はありませんが、このツールを頻繁に使用していて、いくつかの優れた機能があることがわかりました)。
異なる名前を持ついくつかのフォルダツリー全体の任意の場所にあるファイルを照合するためのMindGemsFastDuplicate File Finderがありますが、これはCRCチェックに基づいています。私はこのツールを使用していますが、徐々に信頼しているだけです。これまでのところ、障害はありませんが、 BeyondCompareほど信頼してはいけません。BeyondCompareは、ファイルに対して完全なバイナリ比較を行うという完全な心構えを提供します。
私の場合、ファイルの名前は似ている傾向があります。違いは、単語の順序、句読点、大文字と小文字の違いであり、すべての単語が存在するわけではありません。したがって、ファイルのサブストリングが順序どおりになっていない可能性があるため、正規表現フィルターを使用してBeyondCompareなどの一部のdiffツールが既に提供しているファイルを照合するのは簡単ではありません。
ファイルの名前を同じに変更してから、BeyondCompareなどのツールに「フィード」する前に、類似したファイル名を一致させる方法を探しています。ソリューションは、スクリプトまたはおそらくアプリケーションの形式である可能性があります。
現時点では、問題に合わせてファイル名を一致させるアルゴリズム(Perlで実装する)のアイデアがあります。これにより、ファイル名は上記のようになります。
より良い、または完全に異なるアプローチを提案できますか?
まったく同じファイルサイズのファイルのリストを検索する
英数字以外の文字またはスペースを区切り文字として使用して、最初のファイルから英数字の部分文字列のハッシュを作成します
英数字以外の文字またはスペースを区切り文字として使用して、2番目のファイルから英数字の部分文字列のハッシュを作成します
一致するオカレンス
サブストリングの数が最も多いファイルを見つけます。
一致の数をサブストリングの最大数で割った値に基づいて、ペアの比較のパーセンテージスコアを計算します。
正確なファイルサイズを持つ他のすべてのファイルと各ファイルの比較を繰り返します
ペアの比較をパーセンテージスコアで並べ替えて、比較するファイルの提案を取得します。
ペアの一方のファイルの名前を変更して、もう一方のファイルと同じにします。別のフォルダに配置します。
BeyondCompareのような比較ツールをファイル、フォルダー比較モードで実行します。