0
Words
0
Characters
0
No spaces
0
Lines
0
Paragraphs
0
Sentences
0 min
Reading time
Lines with duplicates
Deduped output

중복 줄 제거: 텍스트 온라인 중복 제거

아무 목록이든 붙여넣고, 정확한 중복을 제거하고, 순서를 유지하거나 결과를 정렬하세요. 대소문자와 공백 토글 포함.

이 도구가 하는 일

단일 텍스트 블록에서 중복 줄을 제거하는 무료 브라우저 내 유틸리티입니다. 입력을 붙여넣고 원래 순서를 유지할지 출력을 정렬할지 선택하면 중복이 사라집니다. 아무것도 기기를 떠나지 않습니다.

명령줄에서 sort -u의 GUI 등가물이거나, 원래 순서로 첫 출현을 유지하고 싶을 때의 awk '!seen[$0]++'입니다. sort | uniq를 실행하기 위해 4,000줄짜리 이메일 내보내기를 터미널에 붙여넣은 적이 있다면, 이건 터미널 없이 같은 일을 합니다.

중복 제거는 정확하고 줄 단위입니다. 두 줄이 중복으로 카운트되려면 문자 단위로 일치해야 합니다(대소문자 및 트림 토글에 따름). 퍼지 매칭, 근사 중복 감지, 유사도 점수는 의도적으로 범위 밖입니다. 다른 문제, 다른 도구.

여기서 중복 제거가 실제로 작동하는 방식

내부적으로 도구는 각 줄을 한 번씩 훑으며 본 값을 해시 기반 집합으로 추적합니다. 이는 JavaScript의 Set 또는 Python의 set과 같은 자료구조입니다. 조회는 평균 O(1)이므로 일반 노트북에서 백만 줄이 1초 미만에 실행됩니다. 기반 알고리즘은 평범한 hash table 멤버십입니다.

두 가지 모드. 순서 유지는 각 줄의 첫 출현을 유지하고 이후 모든 중복을 버립니다. awk '!seen[$0]++'처럼 동작합니다. 정렬 후 중복 제거는 먼저 전체 입력을 알파벳순으로 정렬한 뒤 각 고유 줄을 한 번 출력합니다. sort -u처럼 동작합니다. 다운스트림 소비자가 기대하는 쪽을 고르세요.

비교 자체에 대한 토글이 있습니다. 대소문자 구분 안 함[email protected][email protected]을 같은 줄로 취급합니다. 공백 잘라내기는 비교 전에 앞뒤 공백과 탭을 제거하므로 " example", "example ", "example"이 한 항목으로 합쳐집니다. 둘 다 기본은 꺼짐입니다. 안전한 동작은 입력된 그대로 정확히 일치시키는 것이기 때문입니다.

세 단계로 중복 줄을 제거하는 방법

입력 한 페인, 출력 한 페인. 아무것도 업로드되지 않습니다.

  1. 1

    줄 붙여넣기

    입력 페인에 텍스트를 떨어뜨리세요. 어떤 목록이든 됩니다: 이메일, IP, URL, SKU, 로그 타임스탬프, 패키지 이름, 한 줄에 하나면 무엇이든. 결과를 먼저 보고 싶다면 Sample을 클릭해 의도적으로 중복을 포함한 예시를 불러오세요.

  2. 2

    옵션 선택

    순서 유지(첫 출현을 유지, awk '!seen[$0]++'처럼) 또는 정렬 후 중복 제거(알파벳순, sort -u처럼)를 고르세요. Alicealice가 합쳐져야 한다면 대소문자 구분 안 함을, 앞뒤 공백을 무시해야 한다면 공백 잘라내기를 켜세요.

  3. 3

    결과 복사 또는 다운로드

    오른쪽 페인에 중복 제거된 출력과 제거된 줄 수가 표시됩니다. Copy를 클릭해 가져가거나 Download를 클릭해 .txt 파일로 저장하세요. 두 페인은 독립적으로 스크롤되므로 어떤 줄이 사라졌는지 확인할 수 있습니다.

이 도구가 필요할 때

가져오기 전 마케팅 이메일 목록 정리

한 CRM에서 목록을 내보내고, 웨비나 가입에서 다른 목록을 끼워넣고, 둘을 도구에 붙여넣은 뒤 대소문자 구분 안 함공백 잘라내기를 켜고 중복 제거하세요. Mailchimp와 HubSpot은 어차피 가져오기에서 중복 주소를 거부하지만, 중복만이 아니라 배치 전체를 거부하므로 먼저 이걸 해두면 재업로드를 아낄 수 있습니다.

감사 로그의 IP 주소 중복 제거

auth.log 일주일치에서 awk로 출발지 IP를 뽑아내 붙여넣고, 순서 유지 모드로 중복 제거하세요. "누가 먼저 나타났는가"라는 대략적 시간 신호를 잃지 않고 고유 공격자의 깨끗한 목록을 얻습니다. 그것을 방화벽 차단 목록에 넣으세요.

여러 페이지에서 스크래핑한 URL 목록 정리

사이트맵과 페이지네이션된 인덱스를 스크래핑하면 같은 URL이 여러 번 반환됩니다. 결합된 목록을 떨어뜨리고 정렬 및 중복 제거하면 정규의 크롤 프론티어를 얻습니다. 후행 슬래시와 쿼리 문자열은 여전히 다른 줄로 취급되므로 합치고 싶다면 먼저 정규화하세요.

pip freeze 또는 npm ls의 노이즈를 고유 패키지로 줄이기

두 virtualenv에 걸친 pip freeze, 또는 monorepo에 걸친 npm ls --all은 같은 패키지를 많은 줄에 인쇄합니다. 연결하고, 붙여넣고, 중복 제거하면 name==version당 한 줄이 되어 실제로 무엇이 설치되어 있는지 빠르게 눈으로 확인할 수 있습니다.

여러 소스에서 붙여넣은 CSV 행

줄 수준 중복 제거에 동작합니다. 각 행이 자체 완결적 레코드일 때 보통 필요한 것이 이것입니다. 주의: 이것은 일반 텍스트 중복 제거이지 열을 인식하지 않습니다. 인용된 쉼표를 존중하고 열 순서를 무시하는 진짜 행 수준 중복 제거가 필요하면 진짜 CSV 도구를 사용하세요. 스프레드시트에서 붙여넣은 대부분의 경우, 줄 중복 제거로 충분합니다.

복사한 참고문헌이나 인용 목록 정리

브라우저 탭 세 개에서 한 문서로 참고문헌을 복사하면 같은 DOI가 네 번 반복됩니다. 붙여넣고, 공백 잘라내기를 켠 뒤(PDF에서의 복사-붙여넣기는 떠도는 공백을 좋아하므로) 중복 제거하면 깨끗한 참고문헌 섹션이 나옵니다. 알파벳순 참고문헌 목록에는 정렬 모드가 편리합니다.

중복 제거 빠른 참조

텍스트를 중복 제거할 때 가장 자주 무는 엣지 케이스. 출력을 신뢰하기 전에 한 번 훑어볼 가치가 있습니다.

TopicWhat this tool does
순서 보존순서 유지는 첫 출현을 유지하고 이후 중복을 버립니다. awk '!seen[$0]++'나 Python list(dict.fromkeys(lines))처럼. 정렬 모드는 알파벳순으로, sort -u처럼.
대소문자 구분기본은 꺼짐. 대소문자 구분 안 함이 켜지지 않는 한 Alicealice는 다릅니다. 이메일과 사용자명 목록은 보통 켜기를 원하고 SKU 목록은 보통 그렇지 않습니다.
공백 잘라내기기본은 꺼짐. 공백 잘라내기가 켜질 때까지 " example", "example ", "example"은 세 개의 다른 줄입니다. 내부 공백은 절대 건드리지 않습니다.
빈 줄일반 줄 값으로 취급됩니다: 빈 문자열. 중복 제거가 켜져 있으면 입력에 빈 줄이 있었다면 하나의 빈 줄이 남습니다. 모든 빈 줄을 제거하려면 별도의 공백 정리 단계를 사용하세요.
줄 끝 (CRLF 대 LF)말미의 \r이 분할 후 살아남으면 \r\n으로 끝나는 줄은 \n으로 끝나는 줄과 기술적으로 다릅니다. 우리는 \r?\n으로 분할하므로 혼합된 끝은 합쳐집니다. 유령 중복이 보이면 입력의 줄 중간에 떠도는 \r 문자가 있는 것입니다.
유니코드 정규화시각적으로 동일한 두 문자열은 하나가 NFC를 사용하고 다른 하나가 NFD(미리 합성된 악센트 대 분해된 악센트)를 사용하면 다르게 비교될 수 있습니다. 이 도구는 정규화하지 않습니다. 의심스럽다면 먼저 두 입력을 String.prototype.normalize('NFC')나 Python unicodedata.normalize로 NFC로 정규화하세요.
입력 끝의 후행 줄바꿈\n으로 끝나는 파일은 가짜 빈 마지막 줄을 가집니다. 대부분의 편집기는 이를 숨깁니다. 우리는 그것을 하나의 빈 줄로 취급하고 다른 빈 줄과 함께 중복 제거합니다. 출력은 관례상 단일 후행 줄바꿈을 보존합니다.
인코딩전체에 걸쳐 UTF-8. 붙여넣을 때 브라우저가 디코딩을 처리합니다. 바이트가 원래 Latin-1이나 Windows-1252였다면 중복 제거가 실행되기도 전에 ASCII 외 문자가 잘못될 수 있습니다. 인코딩은 상류에서 변환하세요.

중복 줄 제거: 자주 묻는 질문

원래 순서를 유지하나요, 출력을 정렬하나요?

둘 다, 선택하세요. 순서 유지는 각 줄의 첫 출현을 유지하고 이후 모든 중복을 버리므로 출력은 입력과 거의 같은 순서로 읽힙니다. 정렬 후 중복 제거는 결과 전체를 알파벳순으로 정렬합니다. 순서가 의미를 가질 때(시간순 로그, 순위 매긴 목록)는 순서 유지를 원할 것입니다. 그저 깨끗한 고유 집합이 필요할 때는 정렬을 원할 것입니다.

비교는 대소문자를 구분하나요?

기본적으로 그렇습니다. 그것이 안전한 가정이기 때문입니다. 대소문자 구분 안 함을 켜지 않는 한 Alicealice는 다른 줄입니다. 대부분의 이메일 시스템은 로컬 부분의 주소를 대소문자 구분 없이 취급하므로 이메일 목록에는 거의 항상 이 토글을 켜두기 원할 것입니다. 대소문자 구분 안 하는 플랫폼의 사용자명도 마찬가지입니다. 진짜로 대소문자를 구분하는 SKU와 식별자는 꺼두세요.

앞뒤 공백을 무시할 수 있나요?

네, 공백 잘라내기로 가능합니다. 비교 전에 앞뒤 공백과 탭을 제거하므로 " example ", "example ", "example"이 모두 한 항목으로 합쳐집니다. 입력이 손으로 편집되었거나 PDF에서 복사-붙여넣기 되었을 때 유용합니다. 둘 다 떠도는 공백을 남깁니다. 줄 내부의 공백은 그대로 둡니다.

Unix uniq 명령과 어떻게 다른가요?

uniq 명령은 인접한 중복만 합칩니다. 흔한 놀라움이죠. 다른 줄로 분리된 두 동일한 줄은 모두 uniq에서 살아남습니다. 그래서 Unix 관용구가 sort | uniq 또는 sort -u입니다: 중복이 옆에 오도록 먼저 정렬해야 합니다. 이 도구는 정렬된 입력이 필요 없습니다. 진행하면서 본 모든 줄을 해시 집합에서 추적하기 때문입니다.

각 줄에 중복이 몇 개였는지 카운트하나요?

아니요, 그건 다른 기능입니다. 카운트가 필요하면 Unix 명령은 정렬 후의 uniq -c입니다: sort input.txt | uniq -c | sort -rn은 카운트로 정렬된 빈도표를 줍니다. 가장 흔한 항목을 찾을 때 원하는 것입니다. 이 도구는 정리에 초점을 맞추며 분석에는 그렇지 않습니다.

얼마나 큰 입력을 붙여넣을 수 있나요?

몇 백만 줄은 괜찮습니다. 중복 제거 자체는 상수 시간 해시 조회로 O(n)이므로 병목은 중복 제거가 아니라 결과 페인을 렌더링하는 브라우저입니다. 매우 큰 입력(50MB 이상)에서는 textarea가 다시 그려질 때 눈에 띄는 멈춤을 예상하세요. 입력이 그렇게 크다면 거의 확실히 이미 sort -u를 쓸 수 있을 것입니다. 그것을 사용하세요.

무료인가요, 가입해야 하나요?

무료이고, 계정도 필요 없고, 함정도 없습니다. 가입 장벽도, 붙여넣는 양의 일일 제한도, 유용한 옵션을 로그인 뒤에 숨기는 유료 등급도 없습니다. 전부 브라우저에서 도는 JavaScript이므로 페이지가 로드된 후에는 연결을 끊어도 계속 작동합니다. 목록을 붙여넣고, 중복을 제거하고, 결과를 복사하고, 탭을 닫으세요.

Excel의 중복 제거나 명령줄 sort -u와 어떻게 다른가요?

스프레드시트도 터미널도 없이, 한 칸에 붙여넣고 클릭하면 됩니다. Excel은 데이터를 열에 불러와 대화상자를 열어야 하고, sort -u는 셸이 필요합니다. 실제 동작의 차이도 있습니다. uniq인접한 중복만 제거하므로 먼저 sort해야 하고, 그러면 순서가 흐트러집니다. 이 도구는 텍스트 어디에 있는 중복이든 잡아내며 원래 순서를 유지할 수 있습니다. 그리고 붙여넣은 것은 아무것도 업로드되지 않습니다.

제 텍스트는 비공개인가요, 아니면 무언가 업로드되나요?

아무것도 업로드되지 않습니다. 중복 제거는 전적으로 브라우저 안에서 JavaScript Set에 대해 실행되므로 목록이 서버에 닿지 않고, 로그에 남지 않으며, 저장되지 않습니다. 사내 이메일 내보내기, 고객 목록, 유출 비밀번호 대조를 기기 밖으로 내보내지 않고 붙여넣을 수 있습니다. 확인하려면 브라우저 DevTools를 열고 Network 탭을 보면서 중복 제거하세요. 나가는 요청이 하나도 발생하지 않습니다.

오프라인이나 휴대폰에서도 작동하나요?

둘 다 됩니다. 페이지가 로드된 후 중복 제거는 로컬 JavaScript이므로 Wi-Fi를 끄거나 터널에 들어가도 계속 작동합니다. 휴대폰에서는 레이아웃이 입력과 출력을 세로로 쌓으므로 이메일이나 메모 앱에서 목록을 붙여넣고, 중복을 제거하고, 결과를 다시 복사할 수 있습니다. 설치할 것도, 내려받을 앱도 없습니다. 그냥 웹 페이지입니다.

Notepad++나 Sublime Text 같은 텍스트 편집기와는 무엇이 다른가요?

줄 중복 제거가 되는 편집기는 많지만 기능이 깊숙이 숨어 있습니다. Notepad++는 TextFX 플러그인이 필요하거나, 인접한 중복만 없애는 정렬을 써야 합니다. Sublime은 Permute Lines 다음에 Unique를 거치는 절차 속에 묻혀 있습니다. 여기서는 그것이 바로 페이지의 목적입니다. 붙여넣고, 클릭하고, 복사하면 끝이며, 설치할 플러그인도 없고 아무것도 업로드되지 않습니다. 다만 편집기는 작업을 이어가려고 파일을 계속 열어 둔다는 점이 있어서, 한 번 쓰고 마는 간단한 목록에는 이쪽이 더 빠르지만, 본격적인 편집에는 결국 편집기로 돌아가게 됩니다.

개인정보 보호 및 작동 방식

텍스트는 절대 브라우저를 떠나지 않습니다. 중복 제거는 당신의 기기에서, 로컬로, JavaScript Set에 대해 실행됩니다. 입력에 대한 분석도 없고, 로그도 없고, 클라우드 왕복도 없습니다. 도구 전체가 몇 줄의 코드입니다: 줄바꿈으로 분할하고, 훑고, 본 적 없는 것을 유지. 그 뒤의 표준 라이브러리 프리미티브는 MDN의 Set 참조와 그에 상응하는 Python set 문서에 문서화되어 있습니다.