Удаление дублирующихся строк

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

С учётом регистра
Обрезать пробелы в каждой строке
Удалить пустые строки

Удалено 0 дублирующихся строк.

Как это работает

Инструмент разбивает ваш текст по переносам строк, а затем проходит по строкам один раз с помощью Set в JavaScript, отслеживая, что уже встречалось. Первое вхождение каждой строки сохраняется в исходной позиции; последующие повторы удаляются. Поскольку это единственный проход с поиском за константное время, даже десятки тысяч строк дедуплицируются мгновенно, и, в отличие от классического приёма командной строки sort | uniq, порядок ваших строк сохраняется: ничего не сортируется по алфавиту в качестве побочного эффекта.

Опции меняют то, что считается «одной и той же строкой». При отключённом учёте регистра каждая строка перед сравнением переводится в нижний регистр (сохранённая строка всё равно отображается с исходным регистром). «Обрезать пробелы» сначала убирает пробелы и табуляции в начале и конце — это важнее, чем кажется: две строки могут выглядеть на экране абсолютно одинаково, но отличаться завершающим пробелом или табуляцией, а побайтовое сравнение сочтёт их разными. Если ваши дубликаты не обнаруживаются, почти всегда причина — невидимые пробельные символы, и обрезка это исправляет. Удаление пустых строк выполняется до дедупликации, поэтому одна пустая строка не сохранится как «первая пустая».

Обработка — это несколько строк JavaScript, работающих с текстом, уже находящимся в вашей вкладке. Ничего не загружается: откройте инструменты разработчика, переключитесь на вкладку «Сеть» и вставляйте или редактируйте сколько угодно. Ни один запрос никогда не отправляется, а инструмент работает офлайн после загрузки страницы — это важно, если вы очищаете списки, содержащие email-адреса, URL или что-то ещё, что вы предпочли бы не отправлять на случайный сервер.