Вы всегда можете использовать diff с diffstat . В документации diff нет точного описания алгоритмов, которые он использует, но авторы оригинала написали статью об этом (Google для diff paper ), и вы всегда можете прочитать исходный код.
Для более точных ответов вам понадобится более точный вопрос. Вас интересует только то, является ли один документ фрагментом другого документа?
Или вам также интересно узнать, можно ли разделить одну на части, каждая из которых встречается в другом документе, в том же порядке? Или вам также интересно узнать, сколько материала получается , а не , если вы пытаетесь сопоставить материал обоих документов с помощью быстрого алгоритма? Дифф расскажет вам все эти вещи. Или вы хотите знать, что абсолютно подходит? diff не всегда дает вам это, вам понадобится что-то вроде расстояние Левенштейна . Если один из документов намного короче другого, вы можете использовать быстрые алгоритмы поиска строк . И т. Д. И т. Д.