Usuń zduplikowane wiersze z tekstu
Usuń zduplikowane wiersze z tekstu online — za darmo, w 100% w przeglądarce. Ignoruj wielkość liter lub białe znaki, zachowaj pierwsze lub ostatnie wystąpienie i zobacz, ile duplikatów usunięto. Także sortuj. Bez rejestracji.
Co oznacza usuwanie zduplikowanych wierszy?
Usuwanie zduplikowanych wierszy — deduplikacja, czyli „dedupe” — oznacza skanowanie bloku tekstu rozdzielonego znakami nowej linii i zachowanie tylko jednej kopii każdego odrębnego wiersza. To jedno z najczęstszych zadań czyszczenia, na jakie natrafia każdy, kto pracuje z danymi: zwijanie listy mailingowej, która nagromadziła powtórzenia, redukcja logu do jego unikatowych komunikatów, znajdowanie odrębnych wartości w kolumnie arkusza lub scalanie kilku list w jeden czysty zbiór.
Ciekawym pytaniem jest, co liczy się jako duplikat. Porównanie bajt po bajcie to ścisła odpowiedź, ale rzeczywiste dane są bardziej niechlujne. Dwa wiersze mogą wyglądać identycznie, a jednak różnić się spacją końcową lub różnić tylko wielkością liter — `Error` kontra `error`. To narzędzie pozwala ci zdecydować: domyślnie ignoruje wielkość liter i możesz włączyć porównanie niewrażliwe na białe znaki, tak by wiersze były dopasowywane po ich przyciętej, zmniejszonej do małych liter formie. W ten sposób deduplikujesz na podstawie znaczenia wiersza, a nie jego dokładnego kodowania, co niemal zawsze jest tym, czego naprawdę chcesz.
Druga decyzja to, którą kopię zachować. Zachowanie pierwszego wystąpienia bierze pod uwagę oryginalną kolejność i jest domyślne; zachowanie ostatniego przydaje się, gdy późniejsze wpisy zastępują wcześniejsze. Tak czy inaczej wynik jest deterministyczny, a odznaka statystyk na żywo mówi ci dokładnie, ile duplikatów usunięto, więc nigdy nie musisz ślepo ufać narzędziu.
Deduplikacja naturalnie łączy się z sortowaniem i innym czyszczeniem. To narzędzie składa je w jeden panel: usuń duplikaty, potem opcjonalnie sortuj, przytnij białe znaki, usuń puste wiersze, odwróć lub dodaj numery wierszy. Gdy sortowanie jest głównym wydarzeniem, użyj towarzyszącego narzędzia Sortuj wiersze tekstu, które współdzieli ten sam silnik. Aby policzyć wiersze i słowa w tekście, użyj licznika słów; aby zobaczyć, co zmieniło się między dwiema wersjami listy, użyj text diff; a aby znormalizować wielkość liter przed deduplikacją, użyj konwertera wielkości liter.
Wszystko działa w całości w twojej przeglądarce bez przesyłania, więc deduplikacja poufnej listy jest dokładnie tak prywatna jak jej lokalna edycja. Wklej, a unikatowy wynik jest gotowy do skopiowania w sekundę.
Input: alice@example.com bob@example.com alice@example.com ALICE@example.com Exact dedupe (case-sensitive): alice@example.com bob@example.com ALICE@example.com Case-insensitive dedupe (default): alice@example.com bob@example.com ← ALICE collapsed into alice
Kluczowe funkcje
Deduplikacja z zachowaniem kolejności
Zachowuje każdy unikatowy wiersz raz w jego oryginalnej kolejności domyślnie — takie samo zachowanie jak `awk '!seen[$0]++'`, ale bez terminala. Twoja lista pozostaje w sekwencji, w której ją wkleiłeś, tylko bez powtórzeń.
Zachowanie pierwszego lub ostatniego wystąpienia
Wybierz, czy przetrwa pierwsze, czy ostatnie pojawienie się każdego wiersza. Keep-first zachowuje kolejność dla ogólnego czyszczenia; keep-last jest idealne, gdy późniejsze wpisy nadpisują wcześniejsze, jak wartości konfiguracji lub środowiska.
Dopasowanie niewrażliwe na wielkość liter
Domyślnie `Error`, `error` i `ERROR` zwijają się do jednego wiersza — naturalny wybór dla większości list. Włącz Rozróżnianie wielkości liter, gdy wielkość liter ma znaczenie, a duplikaty muszą pasować dokładnie.
Dopasowanie niewrażliwe na białe znaki
Ignoruj spacje wiodące/końcowe wychwytuje niewidzialne duplikaty różniące się tylko spacją końcową lub tabulatorem — powód numer jeden, dla którego „identyczne” wiersze nie deduplikują się w danych wklejonych z arkuszy i PDF-ów.
Licznik duplikatów na żywo
Odznaka statystyk pokazuje `12 wierszy → 9 wierszy · 3 duplikaty usunięte` podczas pisania. Zawsze wiesz dokładnie, ile powtórzeń zwinięto — bez zgadywania, czy narzędzie faktycznie coś zrobiło.
Dedupe + sortowanie w jednym przebiegu
Włącz kolejność sortowania, aby uzyskać unikatową, zalfabetyzowaną (lub naturalną, lub uporządkowaną według długości) listę w jednym kroku. Deduplikacja działa najpierw, potem sortowanie, więc nic nie ginie, a wynik jest zarówno czysty, jak i uporządkowany.
Przełączniki czyszczenia
Ten sam panel też przycina białe znaki, usuwa puste wiersze, odwraca kolejność i numeruje wyniki. Ułóż którykolwiek z nich na deduplikacji, a chaotycznie wklejona lista staje się czystym, unikatowym, gotowym do wklejenia wynikiem w jednym miejscu — bez skryptowania.
100% prywatność w przeglądarce
Twój tekst nigdy nie opuszcza strony — bez przesyłania, bez logowania, bez analityki. Bezpieczne dla list e-mailowych, logów dostępu i poufnych danych. Zweryfikuj to sam w zakładce Network: deduplikacja generuje zero żądań.
Przykłady usuwania zduplikowanych wierszy
Usuwanie dokładnych duplikatów
apple banana apple cherry banana
apple banana cherry
Zachowanie domyślne: każdy wiersz jest zachowywany raz, przy pierwszym pojawieniu, a późniejsze dokładne powtórzenia są odrzucane. Oryginalna kolejność jest zachowana. Odznaka statystyk raportuje `5 wierszy → 3 wiersze · 2 duplikaty usunięte`.
Ignorowanie wielkości liter
Error error ERROR Warning
Error Warning
Z wyłączonym Rozróżnianiem wielkości liter (domyślnie) `Error`, `error` i `ERROR` są traktowane jako ten sam wiersz, więc zachowywany jest tylko pierwszy. Włącz Rozróżnianie wielkości liter, aby zachować wszystkie trzy jako odrębne pozycje.
Ignorowanie spacji wiodących/końcowych
apple apple banana banana
apple banana
Włącz Ignoruj spacje wiodące/końcowe, aby `apple` i ` apple ` porównywały się jako równe. To wychwytuje niewidzialne duplikaty, które nękają dane kopiowane z arkuszy, PDF-ów i terminali, gdzie wkrada się końcowy biały znak.
Zachowanie ostatniego wystąpienia
v1 v2 v1 v3
v2 v1 v3
Ustaw Zachowaj wystąpienie na Ostatnie, a ostatnie pojawienie się każdego wiersza przetrwa, na swojej ostatniej pozycji. Tu drugie `v1` jest zachowane, a pierwsze usunięte. Przydatne, gdy późniejsze wpisy zastępują wcześniejsze, jak zmienne środowiskowe czy nadpisania konfiguracji.
Deduplikacja i sortowanie razem
dog cat dog bird cat
bird cat dog
Włącz sortowanie Rosnąco, aby uzyskać czystą, unikatową, zalfabetyzowaną listę w jednym kroku. Deduplikacja działa najpierw, potem sortowanie, więc wynik jest zarówno unikatowy, jak i uporządkowany — idealne do zamiany bałaganiarsko wklejonej kolumny w schludny zbiór.
Usuwanie pustych wierszy i duplikatów
alpha beta alpha gamma
alpha beta gamma
Włącz Usuń puste wiersze obok deduplikacji, aby usunąć puste wiersze i powtórzenia naraz. Odznaka statystyk rozdziela te dwie wartości: `6 wierszy → 3 wiersze · 1 duplikaty usunięte · 2 puste usunięte`.
Liczenie, ile duplikatów istnieje
a b a a c b
a b c
Nawet jeśli zależy ci tylko na liczbie, deduplikacja daje ci odpowiedź: odznaka statystyk pokazuje `6 wierszy → 3 wiersze · 3 duplikaty usunięte`. Szybki sposób, aby dowiedzieć się, ile powtórzeń kryje się na liście, bez ręcznego liczenia.
Scalanie dwóch list w unikatowe pozycje
red green blue green yellow red
red green blue yellow
Wklej dwie listy jedna po drugiej i deduplikuj, aby uzyskać sumę — każdy odrębny wiersz, bez powtórzeń, z zachowaniem kolejności pierwszego wystąpienia. Najszybszy sposób na połączenie list mailingowych, zbiorów tagów lub list ID bez formuły arkusza.
Jak usuwać zduplikowane wiersze
- 1
Wklej lub wpisz swoje wiersze
Umieść swój tekst w polu wejściowym. Każdy znak nowej linii to osobny wiersz. Duplikaty są usuwane natychmiast podczas pisania — nie ma przycisku wysyłania. Końcowy znak nowej linii jest ignorowany, więc nie liczy się jako dodatkowy pusty wiersz.
- 2
Wybierz, co liczy się jako duplikat
Zostaw Rozróżnianie wielkości liter wyłączone, aby traktować `Foo` i `foo` jako to samo, lub włącz je, aby zachować je jako odrębne. Włącz Ignoruj spacje wiodące/końcowe, aby wychwycić wiersze różniące się tylko zbędnym białym znakiem.
- 3
Wybierz, które wystąpienie zachować
Zachowaj wystąpienie domyślnie ustawione jest na Pierwsze, z zachowaniem oryginalnej kolejności. Przełącz na Ostatnie, gdy ma wygrać ostatnie pojawienie się każdego wiersza — przydatne dla nadpisań, gdzie późniejsze wpisy zastępują wcześniejsze.
- 4
Dodaj sortowanie lub czyszczenie, jeśli potrzeba
Włącz kolejność sortowania, aby zalfabetyzować unikatowy wynik, lub włącz Usuń puste wiersze i Przytnij każdy wiersz, aby uporządkować listę w tym samym przebiegu. Odznaka statystyk pokazuje efekt każdego przełącznika.
- 5
Skopiuj unikatowy wynik
Kliknij Kopiuj, aby umieścić zdeduplikowany wynik w schowku. Użyj Wyczyść, aby opróżnić oba pola, lub Przykład, aby załadować przykładową listę. Nic nie jest przesyłane na żadnym etapie procesu.
Częste błędy deduplikacji
Białe znaki ukrywające duplikaty
Wiersze, które wyglądają identycznie, ale różnią się spacją końcową lub tabulatorem, nie są dokładnymi duplikatami, więc przeżywają. Włącz Ignoruj spacje wiodące/końcowe, aby porównywać po przyciętej formie. To najczęstsza niespodzianka deduplikacji, zwłaszcza przy danych z arkuszy i PDF-ów.
Dokładne dopasowanie ("apple " ≠ "apple"):
apple
apple ← spacja końcowa, zachowane jako unikatowe
banana Ignoruj białe znaki: apple banana
Różnica wielkości liter traktowana jako unikatowa
Z włączonym Rozróżnianiem wielkości liter `Error` i `error` to różne wiersze i oba przeżywają. Jeśli miały być tym samym, wyłącz Rozróżnianie wielkości liter (domyślnie). Odwrotnie, wyłączenie go, gdy wielkość liter ma znaczenie, może scalić wiersze, które chciałeś zachować osobno.
Rozróżnianie włączone: Error error ERROR ← wszystkie trzy zachowane
Bez rozróżniania (domyślnie): Error ← reszta się zwija
Oczekiwanie, że niesąsiadujące duplikaty zostaną
W przeciwieństwie do wierszopoleceniowego `uniq`, to narzędzie usuwa duplikaty w dowolnym miejscu listy, nie tylko sąsiadujące — więc nie musisz najpierw sortować. Jeśli faktycznie chciałeś zwinąć tylko kolejne powtórzenia, to narzędzie nie jest odpowiednie; posortuj lub przebuduj dane zamiast tego.
Zakładanie zachowania uniq (tylko sąsiadujące): a b a ← oczekiwane, że przetrwa, ale jest usuwane
Pełny dedupe (to narzędzie): a b ← późniejsze 'a' jest usuwane gdziekolwiek się pojawi
Mylenie usuwania pustych wierszy z dedupe
Deduplikacja zwija powtórzone puste wiersze, ale zachowuje jeden; nie usuwa wszystkich pustych. Aby usunąć każdy pusty wiersz, włącz Usuń puste wiersze. Odznaka statystyk raportuje te dwie liczby osobno, więc możesz stwierdzić, czy usunięto puste wiersze, czy prawdziwe duplikaty.
Tylko dedupe (jeden pusty zachowany): alpha (pusty) beta
Dedupe + Usuń puste wiersze: alpha beta
Usuwanie zduplikowanych wierszy: zastosowania
- Czyszczenie list e-mailowych i kontaktowych
- Wklej wyeksportowaną listę mailingową, która nagromadziła powtórzenia, i uzyskaj z powrotem unikatowy zbiór. Włącz dopasowanie niewrażliwe na wielkość liter i białe znaki, aby `Bob@x.com`, `bob@x.com` i `bob@x.com ` wszystkie zwinęły się do jednego adresu.
- Redukcja logów do unikatowych komunikatów
- Deduplikuj hałaśliwy log, aby zobaczyć odrębne wiersze błędów lub zdarzeń bez powtarzania. Keep-last przydaje się, gdy najnowsze wystąpienie każdego komunikatu liczy się bardziej niż pierwsze.
- Znajdowanie unikatowych wartości w kolumnie
- Skopiuj kolumnę z CSV lub arkusza, deduplikuj ją, a wynikiem jest zbiór odrębnych wartości — z licznikiem, ile było duplikatów, co jednocześnie służy jako szybkie sprawdzenie kardynalności. Pozwala też znaleźć zduplikowane wiersze i usunąć powielone rekordy z wklejonej kolumny bez formuły arkusza.
- Scalanie list bez powtórzeń
- Wklej dwie lub więcej list jedna po drugiej i deduplikuj, aby uzyskać ich sumę: każdy odrębny wiersz, bez powtórzeń, w kolejności pierwszego wystąpienia. Szybsze niż formuła arkusza dla jednorazowego scalenia tagów, ID lub nazw.
- Deduplikacja wordlist bezpieczeństwa
- Łącz i czyść wordlisty haseł, listy subdomen lub słowniki fuzzingu całkowicie offline. Ponieważ każda operacja jest lokalna, wrażliwe dane bezpieczeństwa pozostają na twojej maszynie i nigdy nie są wysyłane do zewnętrznej usługi.
- Porządkowanie list importów lub zależności
- Usuń zduplikowane instrukcje import, nazwy paczek lub wpisy zależności, które wkradły się podczas kopiowania-wklejania. Dodaj kolejność sortowania, aby stworzyć kanoniczną, unikatową listę, która utrzymuje przyszłe diffy małymi.
- Przygotowanie danych do analizy
- Usuń powtórzenia przed liczeniem, wykreślaniem lub ładowaniem danych, aby duplikaty nie zniekształcały twoich wyników. Połącz z licznikiem słów, aby zmierzyć oczyszczoną listę, lub z Text Diff, aby porównać ją z inną wersją.
- Deduplikacja list słów kluczowych dla SEO
- Eksporty z badania słów kluczowych są pełne bliskich duplikatów. Usuń tu dokładne powtórzenia, opcjonalnie zmniejszone do małych liter i przycięte, aby uzyskać czysty unikatowy zbiór słów kluczowych przed grupowaniem lub mapowaniem na strony.
Jak działa deduplikacja
- Deduplikacja przez zbiór haszujący
- Wiersze są deduplikowane za pomocą zbioru haszującego (JavaScriptowy `Set` lub `Map`) z kluczem opartym na formie porównawczej każdego wiersza, dając liniową wydajność nawet dla dużych list. Klucz każdego wiersza jest obliczany raz i wyszukiwany w stałym czasie.
- Normalizacja klucza porównawczego
- Klucz używany do dopasowania jest wyprowadzany z wiersza: najpierw przycięty, jeśli Ignoruj spacje wiodące/końcowe jest włączone, potem zmniejszony do małych liter, jeśli Rozróżnianie wielkości liter jest wyłączone. Oryginalny wiersz — a nie znormalizowany klucz — jest tym, co pojawia się w wyniku, więc wielkość liter i odstępy ocalałych są zachowane.
- Keep-first kontra keep-last
- Keep-first wypycha wiersz do wyniku przy pierwszym zobaczeniu jego klucza i pomija późniejsze powtórzenia. Keep-last oblicza ostatni indeks każdego klucza i zachowuje tylko wiersz pod tym indeksem, tak że ocalała kopia siedzi na swojej ostatniej pozycji, podczas gdy ogólna kolejność wciąż podąża za wejściem.
- Podział wierszy (CRLF / LF / CR)
- Wiersze są rozdzielane na dowolnej konwencji nowej linii — `\r\n` (Windows), `\n` (Unix) lub `\r` (klasyczny Mac) — więc mieszane lub wklejone wejście po prostu działa. Jeden końcowy znak nowej linii jest usuwany przed przetwarzaniem, aby plik kończący się podziałem wiersza nie rejestrował fantomowego pustego duplikatu na dole.
- Deterministyczna kolejność pipeline'u
- Pipeline działa w ustalonej sekwencji — przycinanie białych znaków, potem usuwanie pustych wierszy, potem deduplikacja, potem dowolne sortowanie lub tasowanie, potem odwracanie, potem numerowanie wierszy. Ponieważ duplikaty są zwijane przed opcjonalnym krokiem sortowania, włączenie kolejności sortowania przestawia unikatowy zbiór bez odrzucania jakiegokolwiek odrębnego wiersza.
- Osobne liczniki duplikatów i pustych
- Odznaka statystyk śledzi usunięte duplikaty i usunięte puste wiersze niezależnie, obliczone jako różnica liczby wierszy przed i po każdym etapie. Pozwala to zobaczyć na przykład `1 duplikaty usunięte · 2 puste usunięte` zamiast jednej połączonej liczby.
- W przeglądarce, bez potrzeby workerów
- Cała deduplikacja działa w głównym wątku twojej przeglądarki bez podróży na serwer. Typowe listy kończą natychmiast; ponieważ algorytm jest liniowy i oparty na zbiorze, wydajność skaluje się płynnie do bardzo dużych wejść bez zawieszania strony.
Najlepsze praktyki deduplikacji
- Przytnij białe znaki, aby wychwycić ukryte duplikaty
- Najczęstszym powodem, dla którego duplikaty przeżywają, jest niewidzialny końcowy biały znak. Deduplikując dane wklejone z arkuszy, PDF-ów lub terminali, włącz Ignoruj spacje wiodące/końcowe, aby wiersze były porównywane po ich przyciętej formie. Jeśli liczba usuniętych duplikatów jest niższa niż oczekujesz, zwykle winne są białe znaki.
- Decyduj o rozróżnianiu wielkości liter świadomie
- Dla e-maili, tagów i list czytelnych dla człowieka zostaw Rozróżnianie wielkości liter wyłączone, aby `Foo` i `foo` się zwijały. Włącz je tylko dla danych istotnych pod względem wielkości liter, jak identyfikatory lub hashe, gdzie `A1B2` i `a1b2` są naprawdę różnymi wartościami. Zły wybór po cichu zmienia, które wiersze przetrwają.
- Używaj keep-last dla semantyki nadpisań
- Gdy późniejsze wpisy powinny wygrywać — nadpisania konfiguracji, zmienne środowiskowe, log, w którym liczy się najnowszy status — przełącz Zachowaj wystąpienie na Ostatnie. Dla ogólnego czyszczenia listy, gdzie kolejność ma być zachowana od góry, zostaw domyślne Pierwsze.
- Deduplikuj, zanim policzysz lub przeanalizujesz
- Powtórzenia zniekształcają liczniki, wykresy i agregaty. Usuń najpierw duplikaty, potem mierz. Odznaka statystyk służy jednocześnie jako szybkie sprawdzenie kardynalności: różnica między wierszami wejściowymi a wyjściowymi mówi ci, ile powtórzeń niosły dane.
- Sortuj po deduplikacji dla kanonicznej listy
- Jeśli potrzebujesz stabilnej, porównywalnej listy — dla pliku konfiguracyjnego, manifestu lub diffa — włącz kolejność sortowania obok deduplikacji. Unikatowa, posortowana lista tworzy minimalne diffy i jest łatwa do porównania z inną wersją za pomocą Text Diff.
- Zweryfikuj licznikiem na żywo przed kopiowaniem
- Rzuć okiem na odznakę statystyk przed skopiowaniem. `12 wierszy → 9 wierszy · 3 duplikaty usunięte` potwierdza, że narzędzie zrobiło to, co zamierzałeś. Jeśli liczby wyglądają nie tak — zero usuniętych, gdy oczekiwałeś powtórzeń — sprawdź ustawienia wielkości liter i białych znaków.
Często zadawane pytania
Co robi to narzędzie?
Czy zachowuje pierwsze czy ostatnie wystąpienie duplikatu?
Czy mój tekst jest gdzieś przesyłany?
Jak usunąć duplikaty, ale zignorować wielkość liter?
Dlaczego moje wizualnie identyczne wiersze nie są deduplikowane?
Czy usuwanie duplikatów zmienia kolejność moich wierszy?
Czy mogę usuwać duplikaty i sortować jednocześnie?
Co dzieje się z pustymi wierszami?
Czy jest limit rozmiaru listy?
Jak to wypada w porównaniu z wierszem poleceń (sort -u, awk, uniq)?
Jak to jest szybsze niż usuwanie zduplikowanych wierszy w Excelu lub Notepad++?
Czy mogę użyć tego do znalezienia unikatowych wartości w kolumnie?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Konwerter wielkości liter — UPPER, lower, camelCase
Przetwarzanie tekstu
Konwertuj tekst między UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE i 6 innymi formatami natychmiast. Za darmo, w przeglądarce, bez rejestracji.
Generator Lorem Ipsum — darmowy tekst zastępczy
Przetwarzanie tekstu
Generuj tekst zastępczy Lorem Ipsum natychmiast — według akapitów, zdań, słów, bajtów lub listy. Kopiuj lub pobieraj jako zwykły tekst, HTML, Markdown lub JSON. W 100% darmowe, prywatne, w przeglądarce. Bez rejestracji.
Darmowy Regex Tester — dopasuj i debuguj wzorce online
Przetwarzanie tekstu
Testuj wzorce regex natychmiast względem dowolnego tekstu. Podświetlanie dopasowań na żywo, grupy przechwytujące, podgląd zamiany, podział oraz wyjaśniacz wzorca. Regex w wariancie JavaScript, w 100% prywatnie, bez rejestracji.
Generator slugów URL — zamień tekst na slug
Przetwarzanie tekstu
Zamień dowolny tytuł na czysty, przyjazny SEO slug URL w jednej chwili. Transliteruj akcenty i cyrylicę albo zachowaj litery Unicode. 100% prywatnie, w przeglądarce.
Sortuj wiersze tekstu alfabetycznie i naturalnie
Przetwarzanie tekstu
Sortuj wiersze tekstu alfabetycznie, numerycznie (kolejność naturalna) lub według długości — rosnąco lub malejąco. Darmowy sorter online, w 100% w przeglądarce. Także usuwaj duplikaty, odwracaj i czyść listy. Bez rejestracji.
Porównanie tekstów i Diff
Przetwarzanie tekstu
Porównaj dwa teksty natychmiast w przeglądarce. Widok obok siebie, podświetlanie słów, eksport unified diff, opcje ignorowania wielkości liter/spacji/pustych wierszy. 100 % w przeglądarce — bez przesyłania.