次の問題について教えていただければ幸いです。24 個のディレクトリがあり、それぞれに多数 (1000 個) のファイルが含まれています。重複した (名前のみの) ファイルの数が最も多いディレクトリの組み合わせを調べたいと思います。たとえば、4つのディレクトリのみを考慮する場合
dir1 dir2 dir3 dir4
次のディレクトリの内容で
dir1
1.ファ 2.ファ 3.ファ 4.ファ 5.ファ
dir2
1.ファ 10.ファ 15.ファ
dir3
1.ファ 2.ファ 3.ファ
dir4
1.fa 2.fa 3.fa 5.fa 8.fa 10.fa
したがって、ディレクトリ dir1 と dir4 の組み合わせには、最も多くの重複ファイル (4) が含まれます。
ディレクトリが 24 個になると問題がかなり大きくなるので、ブルート フォース アプローチを使用する可能性があると考えていました。の線に沿った何か
- 24 個のディレクトリすべてで発生するすべての重複ファイルをカウントします
- ディレクトリを削除し、重複ファイルの数を数えます
- ディレクトリを置き換えて別のディレクトリをドロップしてから数を数えます
- すべてのディレクトリに対して繰り返します
- 重複ファイルの最大数を持つ 23 のディレクトリのサブセットを取得します
- 上記の 2 ~ 5 を繰り返し、重複ファイルが最も多い 22 個のディレクトリを保持します。
- 残りのディレクトリが2つになるまで繰り返します
- 重複ファイルの最大数を持つディレクトリの組み合わせを選択します
誰かがこれを行う方法を持っている場合、私はいくつかのアドバイスに非常に感謝しています. fdupes
orを使用することを考えdiff
ましたが、出力を解析して要約する方法がわかりません。