텍스트 줄 도구

중복 행 삭제·알파벳/숫자 순 정렬·역순·셔플·트림. 무료, 브라우저에서 처리.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
완전히 같은 줄의 첫 항목을 원래 순서로 남깁니다. 대소문자나 앞뒤 공백이 다르면 다른 줄로 취급합니다.
브라우저 기본 로캘로 문자열을 오름차순 정렬합니다. 10은 9보다 앞에 옵니다. 앞부분의 숫자를 비교하려면 숫자 정렬을 쓰세요.
브라우저 기본 로캘로 문자열을 내림차순 정렬합니다. 대소문자나 악센트가 섞인 줄은 기기마다 순서가 다를 수 있습니다.
parseFloat로 앞부분의 숫자를 읽습니다. 10px는 10, 1,000은 1, 1e3은 1000입니다. 음수와 소수를 지원합니다. 숫자로 읽히지 않는 줄은 끝에서 문자열 오름차순으로 정렬합니다.
입력 줄의 순서를 뒤집습니다. 빈 줄도 결과에 남습니다.
입력 줄을 무작위로 섞습니다. 매번 입력에서 시작하며 같은 순서가 다시 나올 수도 있습니다.
각 줄 앞뒤의 공백을 지웁니다. 줄 안의 공백과 빈 줄은 남깁니다.
빈 줄과 공백만 있는 줄을 지웁니다. 남은 줄은 앞뒤 공백을 포함한 원문을 유지합니다.
한 줄에 한 항목을 입력합니다. 편집은 줄 수만 갱신하며 작업 버튼을 누르면 결과를 만듭니다. 모든 작업은 입력 줄을 읽으므로 연속 처리하려면 출력을 입력 줄에 다시 복사하세요.
출력 전체를 복사합니다. 다른 작업을 이어서 하려면 먼저 입력 줄에 다시 붙여넣으세요. 실패하면 출력을 선택하여 직접 복사하세요.
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

활용 예시

  • 이메일 주소 목록의 중복 삭제
  • 키워드 목록의 알파벳 순 정리
  • 랜덤 샘플링을 위한 셔플
  • 로그 항목의 역순 표시

버튼별 동작

모든 버튼은 입력 칸을 읽어 출력 칸에 씁니다. 입력은 바뀌지 않습니다. 여러 단계(공백 제거 → 중복 삭제 → 정렬)를 이어서 하려면 단계마다 출력을 입력 칸에 다시 복사하세요.

버튼규칙
중복 제거각 줄의 첫 번째 항목을 원래 순서대로 남깁니다. 대소문자와 공백까지 완전히 같아야 중복으로 봅니다. awk '!seen[$0]++'와 같은 결과
A→Z 정렬 / Z→A 정렬브라우저 기본 로캘의 String.prototype.localeCompare
숫자 정렬각 줄을 parseFloat로 읽고, 숫자로 읽히지 않는 줄은 끝으로 보내 오름차순 정렬
역순줄 순서를 뒤집음
섞기무작위 순서(클릭할 때마다 다름)
공백 제거각 줄 앞뒤의 공백 삭제
빈 줄 제거비어 있거나 공백만 있는 줄 삭제

예시: 섞인 목록의 정렬과 중복 삭제

입력(마지막 줄 끝에 공백이 하나 있음):

banana
Apple
apple
Cherry
_x
10
9
éclair
Zebra
apple
apple 

A→Z 정렬(브라우저 언어가 영어일 때):

_x
10
9
apple
apple
Apple
apple 
banana
Cherry
éclair
Zebra

순서는 바이트 값이 아니라 로캘 규칙을 따릅니다. 대문자와 소문자가 나란히 오고 é는 e 근처에 놓입니다. 숫자가 아니라 문자 단위로 비교하므로 10이 9보다 앞입니다. 셸의 LC_ALL=C sort는 바이트 순서로 정렬합니다:

10
9
Apple
Cherry
Zebra
_x
apple
apple
apple 
banana
éclair

같은 입력으로 중복 제거를 하면 apple 하나가 빠지고, apple (끝 공백 포함)은 다른 줄로 남습니다:

banana
Apple
apple
Cherry
_x
10
9
éclair
Zebra
apple 

끝 공백을 구분하지 않으려면 먼저 공백 제거를 하고 결과를 입력에 다시 넣은 뒤 중복을 삭제하세요.

예시: 숫자 정렬이 읽는 값

1,000
v2
-3
1e3
10px
3
0x10
 4

결과:

-3
0x10
1,000
3
 4
10px
1e3
v2

parseFloat는 앞부분의 숫자를 읽다가 쓸 수 없는 문자에서 멈춥니다. 0x10은 0, 1,000은 1, 10px는 10, 1e3는 1000으로 읽힙니다. 4는 앞 공백이 그대로 남습니다. v2는 숫자로 시작하지 않아 맨 끝으로 갑니다.

예시: 한글과 영문이 섞인 목록

A→Z 정렬은 브라우저 기본 언어의 규칙으로 문자열을 비교하므로, 같은 목록도 브라우저 언어에 따라 순서가 달라집니다. 회사 이름 목록을 넣어 보겠습니다.

카카오
네이버
삼성전자
LG전자
SK하이닉스
쿠팡

브라우저 언어가 한국어이면 한글 이름이 가나다순으로 먼저 오고, 영문으로 시작하는 이름은 그 뒤에 놓입니다.

네이버
삼성전자
카카오
쿠팡
LG전자
SK하이닉스

브라우저 언어가 영어이면 반대로 영문 이름이 먼저 옵니다.

LG전자
SK하이닉스
네이버
삼성전자
카카오
쿠팡

여러 사람이 같은 목록을 정렬해 공유한다면, 순서가 다를 수 있다는 점을 염두에 두세요.

예시: 원화 가격 목록의 숫자 정렬

쇼핑몰 가격처럼 천 단위 쉼표가 들어간 값은 숫자 정렬이 의도대로 읽지 못합니다. parseFloat는 쉼표에서 멈추기 때문입니다.

2,500원
10,000원
9,900원
980원
₩5,000

결과:

2,500원
9,900원
10,000원
980원
₩5,000

2,500원은 2, 9,900원은 9, 10,000원은 10으로 읽혀 앞에 오고, 쉼표가 없는 980원은 980으로 읽혀 그 뒤에 옵니다. ₩5,000은 숫자로 시작하지 않으므로 맨 끝입니다. 금액 순서로 정렬하려면 먼저 쉼표와 ₩ 기호를 지우세요. 쉼표를 지운 목록은 다음과 같이 정렬됩니다.

980원
2500원
5000
9900원
10000원

명령줄 대응

작업셸이 도구와의 차이
순서를 유지하며 중복 삭제awk '!seen[$0]++' file.txt같은 결과
인접한 중복 삭제sort file.txt | uniq출력이 정렬됨
정렬sort file.txtLC_COLLATE를 따름, LC_ALL=C이면 바이트 순서
숫자 정렬sort -n file.txt1,000, 0x10, 1e3 처리 규칙이 다름
역순tac file.txt(GNU) / tail -r file.txt(macOS)같은 결과
빈 줄 삭제sed '/^[[:space:]]*$/d' file.txt같은 결과
줄마다 공백 제거sed 's/^[[:space:]]*//;s/[[:space:]]*$//' file.txtASCII 공백이면 같은 결과

제한 사항

  • 대소문자를 무시하는 모드가 없습니다. 필요하면 먼저 텍스트 대소문자 변환으로 소문자로 바꾸세요.
  • 줄바꿈(LF)으로 줄을 나눕니다. 붙여넣은 Windows 줄바꿈은 브라우저 입력 칸이 LF로 맞춥니다.
  • 알파벳 순서는 브라우저 언어 설정에 따라 달라지므로, 악센트나 대소문자가 섞인 줄은 기기마다 순서가 다를 수 있습니다.
  • 줄 수 제한은 없으며 브라우저 메모리가 한계입니다.

FAQ

중복 제거는 어떻게 동작하나요?

줄끼리 완전히 같은지 비교합니다(대소문자도 구분). 같은 줄은 처음 나온 것만 남기고 두 번째부터는 지우며, 남은 줄은 처음 나온 순서를 그대로 유지합니다.

대소문자를 구분하나요?

네. 'Apple'과 'apple'은 서로 다른 줄로 봅니다. 구분 없이 비교하려면 먼저 텍스트 대소문자 변환 도구로 소문자로 맞추세요.

숫자 정렬은 어떻게 하나요?

각 줄을 JavaScript의 parseFloat로 읽어 줄 앞부분의 숫자로 정렬합니다(10px는 10, 1,000은 1, 0x10은 0으로 읽음). 앞부분이 숫자가 아닌 줄은 문자열 순서로 정렬해 맨 끝에 둡니다.

줄 수 제한이 있나요?

따로 정한 제한은 없습니다. 처리가 브라우저 안에서 이루어지므로 브라우저 메모리가 한계입니다.

데이터가 서버로 전송되나요?

전송되지 않습니다. 모든 버튼은 브라우저 탭 안에서 텍스트를 처리하고, 도구는 텍스트를 브라우저 저장소에 저장하지 않습니다. 페이지 통계는 도구 이름과 누른 버튼(deduplicate, sort_asc 등)만 기록하며 텍스트는 포함하지 않습니다.