追加読書

追加読書

OpenBSD での実装には、次のドキュメントとともに標準以外のdiffオプションがあります。-d

-d

できるだけ小さな違いを作ってみてください。これは、多くの変更を含む大容量ファイルを扱うときに多くの処理能力とメモリを消費する可能性があります。

GNUdiff実装には同じオプションがありますが、ドキュメントは短くなります。

-d--minimal

小さな変更を見つけてください。

diff場合によっては、オプションなしで同じコマンドを実行したときとは異なる形状や形式の出力が生成されることを確認するためにこのオプションを使用します。いいえ違いはありません(慌てた意図はありません)。

誰かがこのオプションが実際に望ましくない同じコマンドから別の結果を生成する例を提供または指摘できますか-d?または、誰かがこのオプションを開始するために必要なものを説明できる場合。また、「最小」が「出力行数が少ない」か「塊数が少ない」を意味するのかわからない。

未確認の推測の1つは、それが非常に大きな塊に関連しているということです。

答え1

GNU diff(FreeBSDでも使用されています)では、このフラグはPaul Eggertアルゴリズムのバリエーションを実行し、「差のある大規模入力に対してレーンの出力を生成するコストを制限する」ことを可能に--minimalします。O(N**1.5 log N)より具体的には、次のような結果が表示されます。いいえいくつかのヒューリスティックを適用して、以下を見つけます。閉鎖最良の解決策を見つけ、さらに違いで「混乱している」行を削除します。

OpenBSDでは、Harold Stoneのアルゴリズムを使用するdiff1970年代の古いUnixアルゴリズムを使用しています。diff--minimal比較される行範囲のサイズ(または大きい場合は256)の平方根ではなく、符号なし整数の最大値に制限される(実際にはそうではない)検索をトリガーします。

追加読書

関連情報