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