UltKit

중복 줄 제거

목록을 붙여 넣으면 처음 나온 줄 뒤에 반복되는 줄이 모두 지워지고, 남은 줄은 원래 순서를 유지합니다. 비교할 때 대소문자와 불필요한 공백을 무시할 수 있으며, 모든 처리는 브라우저에서 이루어집니다.

0자 · 0단어 · 0줄

0자 · 0단어 · 0줄

이 브라우저 탭 안에서만 처리됩니다. 입력한 텍스트는 업로드되거나 저장되지 않습니다.

기능 설명

중복 줄 제거 기능은 각 줄이 처음 나온 것만 남기고 뒤에 반복되는 줄을 지우며, 원래 순서는 그대로 둡니다. 비교할 때 대소문자와 앞뒤 공백을 무시할 수 있고, 빈 줄은 남기거나 지울 수 있습니다.

변경 전
red
파랑
Red
초록
변경 후
red
파랑
초록

누가, 왜 목록의 중복을 없앨까요

목록을 합칠 때마다 중복 줄이 생깁니다. 내보낸 이메일 목록 두 개를 합치는 마케터, 여러 도구에서 키워드를 모으는 연구자, 로그 파일에서 URL을 모으는 개발자, 신청서 세 장의 이름을 붙여 넣는 교사 모두 두 번 이상 나오는 항목을 마주하게 됩니다. 스프레드시트로도 중복을 지울 수 있지만, 파일을 열고 열을 선택하고 알맞은 메뉴를 찾아야 합니다. 데이터가 이미 클립보드에 있다면 텍스트 상자에 붙여 넣는 편이 더 빠릅니다.

원래 순서를 지키는 것은 생각보다 중요합니다. 작업 단계 목록, 순위, 크롤링된 순서대로 나열한 URL은 정렬하면 의미를 잃습니다. 여기서는 처음 나온 줄이 정확히 제자리에 남고 뒤에 반복되는 줄만 빠집니다. 삭제된 줄 수도 표시되므로 결과가 그럴듯한지 확인할 수 있습니다.

비교 방식과 눈에 보이지 않는 차이

목록을 위에서 아래로 읽으면서 각 줄을 비교용 키로 바꿔 집합에 저장하고, 키가 이미 집합에 있는 줄을 중복으로 판단합니다. 한 번만 훑으면 되므로 수십만 줄짜리 목록도 빠르게 처리합니다. 이는 고전적인 Unix uniq 명령과 다릅니다. uniq는 바로 붙어 있는 줄의 중복만 지우기 때문에 보통 sort 다음에 실행하며, 그 과정에서 원래 순서를 잃습니다. 이 도구와 같은 일을 하는 것은 awk 관용구 awk '!seen[$0]++'입니다.

똑같아 보이는 두 줄도 실제로는 다를 수 있습니다. 줄 끝의 공백, 공백 대신 들어간 탭, 웹 페이지에서 복사된 줄바꿈 없는 공백 때문에 컴퓨터는 두 줄을 다른 문자열로 봅니다. 앞뒤 공백 무시를 켜면 줄바꿈 없는 공백을 포함해 각 줄 양 끝의 공백을 무시합니다. 대소문자 구분을 끄면 "Paris"와 "paris"를 같은 항목으로 보며, 처음 나온 표기가 남습니다. 빈 줄은 문단 구분용으로 남기거나 모두 지울 수 있습니다.

정리한 다음에는

중복을 없앤 목록은 다음으로 순서를 정해야 할 때가 많습니다. 줄 정렬로 가나다·알파벳순, 자연 정렬, 길이순으로 배열할 수 있습니다. 목록이 PDF나 이메일에서 와서 줄이 끊겨 있다면 다른 텍스트 도구로 그것부터 고치세요. 두 줄로 나뉜 항목은 끊기지 않은 같은 항목과 일치하지 않기 때문입니다.

자주 묻는 질문

중복된 줄 중 어느 것이 남나요?
첫 번째 줄입니다. 같은 내용의 뒤쪽 줄은 모두 지워지고 남은 줄은 원래 순서를 유지하므로, 순서가 뒤섞이지 않습니다.
똑같아 보이는 두 줄이 왜 지워지지 않나요?
눈에 보이지 않는 차이가 있기 때문입니다. 대개 줄 끝의 공백, 탭, 줄바꿈 없는 공백입니다. 앞뒤 공백 무시 옵션을 켜고, 대소문자만 다르다면 대소문자 구분을 끄세요.
uniq 명령과 무엇이 다른가요?
uniq는 바로 위 줄과 같은 줄만 지우기 때문에 보통 sort와 함께 씁니다. 이 도구는 텍스트 어디에 있든 반복을 찾아내고 원래 순서를 유지합니다.
중복 제거와 정렬을 한 번에 할 수 있나요?
여기서 중복을 지운 뒤 결과를 줄 정렬에 붙여 넣으세요. 두 단계로 나누면 필요할 때는 처음 나온 순서를 유지하고, 원할 때만 정렬할 수 있습니다.