До · 7 строк
Москва Санкт-Петербург москва Казань Санкт-Петербург Казань
Оставляем первое вхождение, убираем последующие повторы и подробно показываем, какая строка откуда исчезла
Что нужно сделать?

Слово «дубликат» неоднозначно: кому-то важен регистр, кому-то — случайные пробелы из таблицы. Поэтому Удобник ничего не угадывает. Три правила видны перед запуском, а первая найденная строка всегда остаётся в исходном виде.
Регистр, внутренние и краевые пробелы участвуют в сравнении. Значит, `Москва`, `москва` и ` Москва ` — три разные строки. Удаляется только следующая запись, совпавшая полностью.
Если отключить различие регистра, ключ сравнения строится через локализованное понижение регистра `ru-RU`. Но в результат попадает первая исходная запись, а не автоматически исправленная копия.
ЩУКА · щука · Щука → ЩУКА
Настройка использует `trim()` только для ключа сравнения. Внутренние пробелы не сжимаются, а первая сохранённая строка не обрезается.
| Первая строка | Следующая строка | Без настройки | С настройкой |
|---|---|---|---|
| ·товар | товар· | разные | дубликат |
| красный··чай | красный·чай | разные | разные |
Пустой считается строка без знаков или строка только из Unicode-пробелов. По умолчанию такие строки сохраняются все — абзацы не исчезнут случайно. Если снять переключатель, удаляются все пустые строки, и каждая появляется в журнале с причиной «пустая по выбранному правилу».
Сервис идёт сверху вниз. Первое появление значения записывается в набор уже встреченных ключей. Следующее совпадение пропускается, но остальные строки не сортируются и не переставляются.
A · C · A · B · C → A · C · B
LF, CR, последовательность CRLF, Unicode Line Separator и Paragraph Separator становятся границами. В результате используется LF. Это не меняет содержимое самих строк, но делает копирование между Windows, macOS и браузером предсказуемым.
| Запись | Название | Как учитывается |
|---|---|---|
| LF | Line Feed | одна граница |
| CRLF | Carriage Return + Line Feed | одна граница |
| CR | Carriage Return | одна граница |
| LS / PS | Unicode-разделители | по одной границе |
Внешне похожий знак может быть записан одной кодовой точкой или буквой с отдельным комбинируемым знаком. Инструмент не выполняет NFC/NFD-нормализацию: это могло бы склеить строки без явного согласия пользователя.
Вкладка принимает до 100 000 видимых символов, 300 000 кодовых единиц и 10 000 строк. Лимит не связан с отправкой данных: он защищает слабый телефон от слишком большого журнала удалений. В таблице сначала показываются 80 действий, остальные открываются порциями по кнопке.
У инструмента нет server API. Исходник, результат и содержимое удалённых строк не записываются в URL или браузерное хранилище и не передаются аналитике. Классы `ym-disable-keys`, `ym-disable-submit` и `ym-hide-content` закрывают чувствительные блоки от Вебвизора.
Всегда остаётся первое вхождение сверху. Все последующие совпадения удаляются, а порядок остальных строк не меняется.
По умолчанию нет, потому что включено различие регистра. Если снять переключатель, сравнение станет регистронезависимым, но написание первой сохранённой строки не изменится.
По умолчанию они участвуют в сравнении. Отдельная настройка позволяет не учитывать их только при поиске дубля. Первая строка всё равно сохраняется с исходными пробелами.
По умолчанию все пустые и пробельные строки сохраняются. Если снять настройку «Сохранять пустые строки», они будут удалены явно и попадут в журнал с отдельной причиной.
Нет. Инструмент только удаляет последующие совпадения. Первая запись каждого значения остаётся на своём месте.
CRLF, CR, LF и два Unicode-разделителя распознаются как границы строк. Готовый текст собирается с LF, а число заменённых окончаний показывается в решении.
Нет. Сервис не выполняет скрытую NFC/NFD-нормализацию. Кодово разные записи остаются разными, если не совпали после явно выбранных правил регистра и краевых пробелов.
Здесь очищается один список и получается готовый текст без повторов. Калькулятор сравнения двух списков отвечает на другую задачу: общие и отличающиеся элементы двух наборов.
Нет. Движок выполняется в текущей вкладке, не имеет server API и не записывает текст в URL, localStorage или аналитику. Поле и производный результат скрыты от Вебвизора.