サーバーから大量の HTML ファイル (10,000 および GB 相当) をスクレイピングしており、いくつかの変更後にサーバーが同じ結果を生成することを確認したいが、重要でない種類の違い (空白など) は無視したい改行の欠落、タイムスタンプ、ある種の数値の小さな変更など。
これを行うためのツールを知っている人はいますか?必要以上のフィルタリングはしたくありません。
(ああ、Linuxで実行する必要があります)
サーバーから大量の HTML ファイル (10,000 および GB 相当) をスクレイピングしており、いくつかの変更後にサーバーが同じ結果を生成することを確認したいが、重要でない種類の違い (空白など) は無視したい改行の欠落、タイムスタンプ、ある種の数値の小さな変更など。
これを行うためのツールを知っている人はいますか?必要以上のフィルタリングはしたくありません。
(ああ、Linuxで実行する必要があります)
CloneDRなどのクローン検出器の使用を検討してください。このツールは、コンピューター プログラム (HTML は特殊なケース) ファイルの大規模なセットを解析し、各ファイルの本質的な構造を表す抽象的な構文ツリーを構築し、プログラムの類似性を比較します。本質的なプログラム構造を比較しているため、コメントや空白などの本質的な違いを無視し、2 つのコード セグメントが同一であるか、または他のコード ブロックを置き換えることで一方を他方から取得できるかを判断します。後者は、さまざまな方法で変更されたコードの認識を可能にします。Web サイトで、さまざまなコンピューター言語で実行されたクローン検出のサンプルを確認できます。
あなたの場合、あなたが探しているのは、本質的にシステム B のファイルのクローン (正確またはニアミス) であるシステム A のファイルです。一般的な規則として、ファイルaがファイルbの変形である場合(たとえば、いくつかの変更) CloneDr はそれをクローンとして報告し、正確な違いを示します。
20,000 ファイルの規模で、ツールが必要な理由がわかり、完全一致ではなくニアミス一致が必要な理由もわかります。
Linux では動作しませんが、あなたの問題は解決するのが難しいと思いますので、それはあなたが最適化しているものではありません。
私はWindowsでwinmergeをよく使用していますが、Linuxでmeldを楽しんでいる人もいるので、おそらくそれでうまくいくかもしれません http://meld.sourceforge.net/
簡単なグーグルで見た他の例は、Kompare、xxdiff.sourceforge.net、kdiff3.sourceforge.net でした。
(1 つのリンクしか投稿できなかったので、アドレスを xxdiff と kdiff3 にテキストとして書きました)
Beyond Compareは、実際に購入する価値のあるソフトウェアです (自分が入力しているのが聞こえるとは思いませんでした!)。GUI ベースですが、何千ものファイルをうまく処理します。これにより、重要でない変更を正規表現と空白 (行の先頭、中間、末尾) で指定できます。機能セットは非常に広範囲です。試用版のダウンロードを確認してください。
私はこの会社で働いていません。Beyond Compare を毎日職場で使用し、毎回楽しんでいます。