Блог
Текстовые утилиты

Удалить повторяющиеся строки из списка

Вставьте список, по одному пункту на строку. Каждая строка, повторяющая уже встреченную выше, удаляется — остаётся только первое вхождение, оставшиеся строки сохраняют исходный порядок, ничего не сортируется.

Результат

Удалено дубликатов —
Оставлено уникальных строк —

Все вычисления выполняются локально в браузере: разбор, график, экспорт. Если отключите сеть, страница продолжит работать.

Факты и границы применимости

Какая копия остаётся Первое вхождение каждой строки; все последующие повторы удаляются
Порядок Сохраняется — утилита никогда не переставляет строки, только удаляет часть из них
Регистр По умолчанию учитывается: «Яблоко» и «яблоко» считаются разными строками
Пробелы По умолчанию пробелы по краям строки при сравнении игнорируются
Пустые строки Считаются обычным значением — сохранится только первая пустая строка
Сортировка Не выполняется. Чтобы отсортировать и убрать дубли за один проход, используйте опцию в сортировке строк

Когда этот метод вводит в заблуждение

Как это считается

Текст разбивается на строки. Каждая строка сверяется со всеми строками, встреченными за этот же проход раньше, сверху вниз.

Для каждой строки строится ключ сравнения: с обрезанными пробелами по краям, если включена эта опция, и в нижнем регистре, если включено регистронезависимое сравнение. Строки с одинаковым ключом считаются дубликатами друг друга.

Первая строка, давшая определённый ключ, сохраняется и попадает в результат; каждая последующая строка с тем же ключом пропускается и учитывается в счётчике «удалено дубликатов».

Поскольку проход идёт слева направо за один раз с проверкой уже встреченных ключей, результат всегда содержит ровно одну строку на каждый уникальный ключ — никогда не ноль и не больше одной.

Вопросы и ответы

Какой дубликат остаётся — первый или последний?

Первый. Если «яблоко» встречается на строке 2 и снова на строке 7, останется копия со строки 2, а строка 7 будет удалена.

Список при этом сортируется?

Нет, порядок остаётся ровно таким, как вы ввели. Для отсортированного списка без дублей используйте сортировку строк с включённым удалением дубликатов.

«Яблоко» и «яблоко» считаются дубликатами?

Только если включить регистронезависимое сравнение. По умолчанию это две разные строки.

А что со строкой из одних пробелов?

При включённом (по умолчанию) игнорировании пробелов строка из одних пробелов и по-настоящему пустая строка считаются равными, поэтому сохранится только первая из них.

Мой список куда-то отправляется?

Нет. Всё выполняется в вашем браузере, ничего не загружается на сервер.

Похожие утилиты

Все утилиты