UltKit
Зображення11
PDF13
Документи й дані7
Відео6
Аудіо4
Інші інструменти22

Видалити дублікати рядків

Вставте список, і кожен рядок, що повторюється після першої появи, буде видалено, а решта рядків збереже початковий порядок. Під час порівняння можна ігнорувати регістр літер і випадкові пробіли, а вся обробка відбувається у вашому браузері.

Символів: 0 · слів: 0 · рядків: 0

Символів: 0 · слів: 0 · рядків: 0

Працює повністю у цій вкладці браузера. Ваш текст не завантажується й не зберігається.

Що це робить

Видалити повторні рядки залишає перше входження кожного рядка й прибирає наступні повтори, не змінюючи початкового порядку. Порівняння може ігнорувати регістр і пробіли по краях, а порожні рядки можна залишити або видалити.

До
червоний
синій
Червоний
зелений
Після
червоний
синій
зелений

Хто чистить списки від дублікатів і навіщо

Дублікати рядків з’являються щоразу, коли списки об’єднують. Маркетолог зводить два експортовані списки адрес, дослідник збирає ключові слова з кількох сервісів, розробник збирає URL із лог-файлів, учитель вставляє прізвища з трьох форм реєстрації: у кожного в результаті є записи, що повторюються двічі або частіше. Дублікати можна прибрати й у таблицях, але для цього треба відкрити файл, виділити стовпець і знайти потрібний пункт меню; вставити текст у поле швидше, коли дані вже в буфері обміну.

Збереження початкового порядку важливіше, ніж здається. Список кроків, рейтинг або URL у порядку обходу втрачають сенс після сортування. Тут перше входження лишається точно на своєму місці, а наступні повтори просто відкидаються, і лічильник показує, скільки рядків видалено, тож ви можете оцінити, чи результат правдоподібний.

Як працює порівняння і непомітні відмінності

Кожен рядок зводиться до ключа порівняння й під час читання зверху вниз зберігається в множині; рядок, ключ якого вже є в множині, вважається дублікатом. Для цього потрібен один прохід, тому списки зі сотнями тисяч рядків обробляються швидко. Це також відрізняється від класичної команди Unix uniq, яка видаляє лише дублікати в сусідніх рядках, тому її зазвичай запускають після sort, втрачаючи початковий порядок. Ідіома awk awk '!seen[$0]++' робить те саме, що й цей інструмент.

Два рядки можуть виглядати однаково, але відрізнятися. Пробіл наприкінці, табуляція замість пробілу або нерозривний пробіл, скопійований з вебсторінки, змушують комп’ютер вважати їх різними рядками. Увімкніть обрізання, щоб ігнорувати пробіли на обох кінцях кожного рядка, зокрема нерозривні. Вимкніть урахування регістру, щоб вважати «Париж» і «париж» одним записом; зберігається той варіант написання, що трапився першим. Порожні рядки можна залишити, щоб абзаци лишалися розділеними, або видалити повністю.

Після очищення

Після видалення дублікатів списку часто потрібен певний порядок: Сортування рядків може впорядкувати його за алфавітом, у природному порядку або за довжиною. Якщо список узято з PDF або листа з порушеними рядками, спершу виправте їх іншими текстовими інструментами, адже запис, розірваний на два рядки, не збігатиметься зі своїм цілим дублікатом.

Поширені запитання

Яка копія рядка-дубліката залишається?
Перший. Кожен наступний рядок із тим самим вмістом видаляється, а решта рядків лишається в початковому порядку, тож нічого не перемішується.
Чому два рядки, що виглядають однаково, не видаляються?
Вони відрізняються невидимо, найчастіше пробілом наприкінці, табуляцією або нерозривним пробілом. Увімкніть обрізання пробілів або ігнорування регістру, якщо різниця лише у великих літерах.
Чим це відрізняється від команди uniq?
uniq видаляє рядок, лише якщо він повторює рядок безпосередньо над ним, тому його зазвичай поєднують із sort. Цей інструмент знаходить повтори в будь-якому місці тексту й зберігає початковий порядок.
Чи можна видалити дублікати й водночас відсортувати список?
Видаліть дублікати тут, а потім вставте результат у «Сортування рядків». Два кроки дають змогу зберегти порядок першої появи, коли він потрібен, і сортувати лише тоді, коли ви цього хочете.