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

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

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

Результат

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

У этой страницы вообще нет серверной части. Вставленная таблица разбирается кодом JavaScript внутри вашего же браузера, график рисуется на элементе canvas на вашей машине, файл экспорта собирается локально. Ничего не загружается, не хранится и не пишется ни в какие логи. После загрузки страницы можно отключить сеть — всё продолжит работать, и это самый простой способ проверить обещание самостоятельно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все утилиты