Инструмент для сравнения / сравнения HTML в натуральном выражении - PullRequest
4 голосов
/ 30 июня 2010

У меня есть много HTML-файлов (10 000 и ГБ), скопированных с сервера, и я хочу проверить, чтобы убедиться, что сервер выдает те же результаты после некоторых модификаций, но игнорирую различия, которые не имеют значения, например пробелы, пропущенные новые строки, временные метки, небольшие изменения в некоторых номерах и т. д.

Кто-нибудь знает инструмент для этого? Я бы предпочел не делать больше фильтрации, чем нужно.

(О, и это должно работать под Linux)

Ответы [ 3 ]

1 голос
/ 30 июня 2010

Возможно, вы захотите использовать детектор клонов, например, наш CloneDR . Этот инструмент анализирует большие наборы файлов компьютерных программ (HTML - это особый случай), создает абстрактные синтаксические деревья, представляющие основную структуру каждого файла, и сравнивает программы на предмет сходства. Поскольку он сравнивает существенную структуру программы, он игнорирует несущественные различия, такие как комментарии и пробелы, и определяет, что два сегмента кода либо идентичны, либо один может быть получен из другого путем замены других блоков кода. Последний позволяет распознавать код, который был изменен различными способами. На сайте вы можете увидеть образцы прогонов по обнаружению клонов на разных языках.

В вашем случае вам нужны файлы в системе A, которые по сути являются клонами (точными или почти пропущенными) файлов в системе B. Как правило, если файл a является вариант файла b (например, с несколькими изменениями) CloneDr сообщит об этом как клон и покажет точные различия.

В масштабе 20 000 файлов я могу понять, почему вам нужен инструмент, и я могу понять, почему вам нужны совпадения с пропусками, а не точные совпадения.

Не работает под Linux, но я полагаю, что вашу проблему достаточно сложно решить, так что это не то, что вы оптимизируете.

0 голосов
/ 30 июня 2010

Beyond Compare - это приобретенное программное обеспечение, которое на самом деле стоит денег (я никогда не думал, что услышу, как я набираю это!).Он основан на графическом интерфейсе, но хорошо обрабатывает тысячи файлов.Это позволит вам указать несущественные изменения с помощью регулярных выражений, а также пробелов (начало, середина и конец строки).Набор функций очень обширный, ознакомьтесь с пробной загрузкой.

Я не работаю в этой компании, я просто использую Beyond Compare каждый день на работе и наслаждаюсь им каждый раз!

0 голосов
/ 30 июня 2010

Я использую Winmerge Alot в Windows, и из того, что я вижу, некоторые люди наслаждаются объединением в Linux, так что, возможно, это могло бы помочь вам http://meld.sourceforge.net/

Другими примерами, которые я видел по быстрому поиску, были Kompare, xxdiff.sourceforge.net и kdiff3.sourceforge.net

(можно опубликовать только 1 ссылку, поэтому записал адреса в xxdiff и kdiff3 в виде текста)

...