onlinetools.dev

Сравнение текстов (diff)

Сравнивайте два текста построчно и смотрите добавления и удаления

Работает локально
loading…
Об этом инструменте

Вставьте исходный текст слева и изменённую версию справа — и получите единое построчное сравнение: удаления отмечены красным, добавления зелёным, контекст сохранён между ними, с исходными номерами строк с обеих сторон. Это самый быстрый способ ответить на вопрос «что на самом деле изменилось?» между двумя конфигами, двумя ответами API или двумя версиями фрагмента, который кто-то прислал в чат.

Сравнение использует алгоритм наибольшей общей подпоследовательности по строкам — то же семейство алгоритмов, что стоит за git diff, — поэтому переставленные блоки и мелкие правки дают читаемый результат, а не помечают всё как изменённое. Итоговая строка суммирует добавленные и удалённые строки.

Поскольку оба текста остаются на странице, сравнение конфиденциальных материалов — договоров, учётных данных в конфигах, неопубликованных текстов — не несёт рисков вставки их в случайный веб-сервис.

Частые вопросы

Сравнение работает по словам или по строкам?
По строкам. Каждая строка сравнивается как единое целое, что соответствует тому, как разработчики читают диффы кода и конфигов. Поэтому изменённая строка отображается как одно удаление плюс одно добавление; посимвольная подсветка внутри строки — в планах.
Почему дифф показывает всё как изменённое?
Обычно из-за невидимых различий: одна сторона использует табы, другая пробелы, окончания строк CRLF из Windows против LF из Unix, или пробелы в конце строк. Нормализация пробелов перед сравнением (для JSON-данных помогает JSON-форматтер с сортировкой ключей) делает настоящие изменения видимыми.
Можно ли осмысленно сравнить два JSON-ответа?
Да — сначала пропустите оба через JSON-форматтер с включённой сортировкой ключей, чтобы эквивалентные документы сериализовались одинаково. Тогда дифф покажет реальные изменения значений, а не шум от порядка ключей.
Есть ли максимальный размер текста?
Алгоритм сравнивает каждую строку одного текста с каждой строкой другого, поэтому очень большие файлы (десятки тысяч строк с обеих сторон) могут занять некоторое время. Типичные файлы кода и ответы API сравниваются мгновенно.
Похожие инструменты