목록을 정렬하는 것은 결과가 나올 때까지 컴퓨팅에서 가장 해결된 문제처럼 들립니다 file10 위에 file2, 상단에 묶인 모든 대문자 이름, $5 가격 목록의 맨 아래에 좌초,그리고 "Apple" 그리고 "apple" 두 개의 다른 항목으로 계산. 그 각각은 정확히 말한 일을하는 정렬입니다. 문제는 그 "alphabetical order" 여러 가지 다른 규칙을 숨기고,잘못된 하나를 선택하면 기술적으로 정렬되어 실질적으로 쓸모없는 목록이 생성됩니다.
이 가이드는 일상적인 목록에 중요한 순서 규칙을 설명합니다: 바이트 순서,로케일 인식 알파벳 순서,임베디드 번호의 자연 순서,진정한 숫자 순서 및 길이 순서. 또한 트리밍 및 중복 제거와 같은 청소 단계가 정렬과 어떻게 상호 작용하는지 다룹니다. 작업된 예제에서는 다음을 사용합니다 툴즈 라인 선별기그리고 표시된 각 출력은 해당 코드가 생성하는 것입니다.
TL;DR: 텍스트 줄을 정렬하려면 줄당 하나의 항목을 붙여넣고 모드를 선택합니다. Toolz 라인 분류기의 알파벳순은 로케일을 인식하고 자연스럽습니다
item2전에 온다item10그리고 (기본적으로 on) 케이스 무시 "Apple" 및 "apple" 함께 유지합니다. 숫자 모드는 각 줄의 시작 부분에 있는 숫자로 주문하고 숫자가 아닌 줄을 맨 아래로 가라앉힙니다. 문자 수별로 길이 모드 주문합니다. 정렬하기 전에 청소가 실행됩니다: 공백을 다듬고 빈 줄을 놓은 다음 첫 번째 발생을 유지하는 중복을 제거합니다. The 온라인 라인 분류기 입력할 때 클라이언트 측, 무료, 가입 없음 및 업데이트가 제공됩니다.
라인 분류기는 무엇을합니까?
줄 분류기는 텍스트 블록을 가져와 각 줄을 하나의 항목으로 처리하고 선택한 규칙에 따라 줄을 재배열합니다. 동일한 도구는 일반적으로 동시에 목록을 정리합니다: 길 잃은 공백 다듬기,빈 줄 제거 및 중복 제거.
Toolz 버전은 5 가지 모드와 4 가지 청소 옵션을 제공합니다:
| 설정 | 하는 일 | 기본값 |
|---|---|---|
| A부터 Z까지 | 자연수 처리를 통한 위치 인식 알파벳 순서입니다 | 선택된 |
| 숫자 | 각 줄의 시작 번호로 주문합니다 | |
| 길이 | 문자 수별 순서, 가장 짧은 것부터 | |
| 역 | 정렬하지 않고 현재 줄 순서를 뒤집습니다 | |
| 셔플 | 무작위 순서; 다시 클릭하면 다시 섞일 수 있습니다 | |
| 내림차순 | A의 결과를 Z, 숫자 또는 길이로 뒤집습니다 | 끄다 |
| 빈 줄 제거 | 비어 있거나 공백만 있는 줄을 삭제합니다 | 에 |
| 중복 제거 | 각 줄의 첫 번째 발생을 유지합니다 | 끄다 |
| 트림 공백 | 각 줄의 양쪽 끝에 있는 공백과 탭을 제거합니다 | 끄다 |
| 케이스 무시 | 정렬 및 복제를 위해 선을 소문자로 비교합니다 | 에 |
출력 패널에는 몇 개의 줄이 나왔는지, 몇 개가 제거되었는지 표시되므로 청소 옵션의 효과를 한눈에 볼 수 있습니다.
왜 file10이 file2보다 먼저 나오나요?
일반 텍스트 정렬은 문자열을 왼쪽부터 한 번에 한 문자씩 비교하기 때문입니다. file10 그리고 file2 4개의 캐릭터에 맞춰 매치하면 다섯 번째 캐릭터가 매치됩니다 1 하나에 및 2 다른 하나에서. 캐릭터 1 전에 정렬합니다 2, 그래서 file10 승리하고 비교에서는 10이 2보다 더 큰 숫자라는 사실을 결코 고려하지 않습니다.
자연 정렬은 숫자로 자리 숫자의 각 실행을 읽어이를 해결합니다. Toolz 라인 sorter's A to Z 모드는에 대해 설명 된 옵션,숫자 비교가 켜져 browser's 내장 콜레이션을 사용하여 그렇게합니다 String.prototype.localeMDN 에서 비교하기. 아래의 주문 규칙은 에서 나옵니다 유니코드 콜레이션 알고리즘브라우저가 "é"를 결정하는 방법은 "z" 이후가 아니라 "e" 근처에서 정렬합니다.
다음은 세 가지 규칙에 따른 동일한 5개 항목 목록입니다:
| 입력 | 바이트 순서(LC_ALL=C sort) |
캐릭터 순서, 케이스 접음 | 자연 질서(도구 A~Z) |
|---|---|---|---|
item10 |
Item1 |
Item1 |
Item1 |
item2 |
item10 |
item10 |
item2 |
Item1 |
item2 |
item2 |
item3 |
item3 |
item3 |
item3 |
item10 |
zebra |
zebra |
zebra |
zebra |
바이트 순서 풋 Item1 먼저 대문자 때문입니다 I 어떤 소문자보다 낮은 코드를 가지고 있습니다. 케이스 폴딩이있는 문자 순서는 대문자를 수정하지만 여전히 넣습니다 item10 전에 item2. 자연 질서는 둘 다 옳게 얻는다.
케이스가 알파벳 정렬에 어떤 영향을 미치나요?
원시 바이트 순서로 모든 대문자 문자는 모든 소문자 앞에 정렬되므로 이름 목록은 두 개의 알파벳 순서로 분할될 수 있습니다: 모든 대문자 항목이 먼저, 그 다음에는 모든 소문자 항목이 수행됩니다. Locale-aware 정렬은 그렇게 하지 않습니다; 문자를 먼저 동일한 문자로 처리하고 대소문자를 사용하여 연결을 끊습니다.
대소문자 무시 옵션은 한 단계 더 나아가 모든 것을 소문자로 비교합니다. 두 줄이 대소문자별로만 다를 때 동일한 것으로 비교하고 정렬은 입력에 나타난 순서대로 유지합니다. 이는 아래에 설명된 중복에 중요합니다.
내장된 샘플을 사용한 작업 예입니다
클릭 "샘플로드" 그리고 입력은 열 줄입니다: banana, Apple, cherry, apple, 10, 2, Banana, date, 빈 줄, 그리고 grape.
| 설정 | 출력 | 표시된 개수 |
|---|---|---|
| 기본값: A ~ Z, 케이스 무시, 빈 줄 제거 | 2, 10, Apple, apple, banana, Banana, cherry, date, grape |
9 줄, 1 제거 |
| 추가 중복 제거 | 2, 10, Apple, banana, cherry, date, grape |
7 줄, 3 제거 |
| 중복 제거, 케이스 무시 | 2, 10, apple, Apple, banana, Banana, cherry, date, grape |
9 줄, 1 제거 |
| 기본값과 내림차순 | grape, date, cherry, Banana, banana, apple, Apple, 10, 2 |
9 줄, 1 제거 |
그 표에는 세 가지 세부 사항이 보입니다. 알파벳 모드에서 숫자 앞에 오는 문자,그리고 2 선행하다 10 자연스러운 주문 때문에. 케이스 무시를 켜고, Apple 앞서 나가세요 apple 입력에서 먼저 나타났기 때문입니다. 대소문자를 무시하면 browser's collation 은 영어 브라우저에서 일반적인 동작인 대문자 1 바로 앞에 소문자 형태를 배치하고,동일하지 않기 때문에 줄 중 어느 것도 중복으로 계산되지 않습니다. 내림차순은 오름차순 결과의 완전한 반전이므로 묶인 줄도 뒤집습니다.
알파벳순 대 숫자 정렬: 각각을 언제 사용해야 합니까?
파일 이름,버전 레이블 또는 거리 주소와 같이 숫자가 포함된 텍스트에 대해 알파벳 (자연) 모드를 사용합니다. 각 줄이 숫자이거나,하나로 시작할 때 숫자 모드를 사용하고 값으로 정렬된 줄을 원합니다.
숫자 모드는 각 줄의 시작 부분에 있는 숫자를 JavaScript's 방식으로 읽습니다 parseFloat 합니다. 선행 공백을 건너뛰고 선택적 부호,숫자, 소수점 및 지수를 읽고 숫자를 계속할 수 없는 첫 번째 문자에서 멈춥니다. 숫자로 시작하지 않는 줄은 맨 아래로 이동하여 원래 순서를 유지합니다.
| 라인 | 사용된 값 | 노트 |
|---|---|---|
42 |
42 | |
-7.5 |
-7.5 | 음수와 소수 값이 작동합니다 |
1e3 |
1000 | 과학적 표기법을 읽습니다 |
12 apples |
12 | 숫자 뒤의 텍스트는 무시됩니다 |
1,000 |
1 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 100 X 1 | 읽기는 쉼표에서 멈춘다 |
$5 |
숫자가 아닙니다 | 바닥으로 가라앉습니다 |
v2 |
숫자가 아닙니다 | 바닥으로 가라앉습니다 |
정렬 $5, 42, 1,000, -7.5, 12 apples, 1e3 숫자 모드에서는 다음을 제공합니다:
-7.5
1,000
12 apples
42
1e3
$5
그 출력에는 두 개의 트랩이 있습니다. 1,000 1 로 정렬되었습니다. 수천 개의 구분 기호가 숫자를 끝내기 때문입니다. 먼저 스트립하십시오 찾기 및 바꾸기 데이터가 그들을 사용하는 경우. 그리고 $5 바닥으로 떨어졌다; 가격을 정렬하기 전에 통화 기호를 제거하십시오.
숫자 모드에서 내림차순으로 내려가면 전체 결과가 반전됩니다. 즉,숫자가 아닌 선이 아래에서 위로 이동한다는 의미입니다. 숫자만 내림차순으로 원하는 경우 숫자가 아닌 선을 먼저 정리합니다.
길이별로 정렬하는 것은 어떻게 작동합니까?
길이 모드는 줄에 포함된 문자 수,최단 첫 번째 또는 내림차순으로 가장 긴 첫 번째 순서를 지정합니다. 길이가 같은 줄은 입력 순서를 유지합니다.
카운트는 UTF-16 코드 단위를 계산하는 JavaScript 문자열 길이입니다. 일반 문자,숫자 및 눈에 보이는 문자 수와 동일한 악센트가 있는 라틴 문자의 경우: café 는 4 입니다. 대부분의 이모티콘과 일부 희귀한 문자는 두 개의 코드 단위를 사용하므로 ok👍 3 이 아닌 4 로 계산됩니다. 단어,이름 또는 URL 목록의 경우 거의 중요하지 않습니다.
길이 정렬은 이상값을 찾아내는 데 편리합니다: 비정상적으로 긴 제품 제목, 잘린 항목 또는 목록에서 가장 짧은 키워드.
청소 및 분류는 어떤 순서로 이루어지나요?
단계는 항상 고정된 순서로 실행되며 순서는 가장 놀라운 결과를 설명합니다:
- 분할 유닉스와 윈도우 라인 엔딩을 모두 수용하는 라인 입력입니다.
- 트림 트림 공백이 켜져 있는 경우 각 줄.
- 빈 줄 제거, on인 경우. 공백만 포함하는 줄은 Trim off를 사용하더라도 공백으로 계산됩니다.
- 중복 제거에, 만약에. 첫번째 발생은 지켜집니다. 케이스를 무시하십시오 on 로, 케이스에 의해서만 다른 선은 중복으로 세고, 첫번째 것의 케이싱은 살아납니다.
- 정렬, 역방향 또는 셔플 남은 것은.
트리밍은 선택 사항이며 기본적으로 꺼져 있기 때문에 apple 그리고 apple (후행 공백 있음) 은 Trim 을 켜지 않는 한 중복을 비교할 때 두 개의 다른 줄입니다. 이것이 가장 일반적인 이유입니다 a "remove duplicates" pass 는 항목을 놓치는 것 같습니다. 스프레드 시트에서 붙여 넣은 탭은 동일한 효과를 발생시킵니다.
마지막 발생을 유지하거나 각 줄의 일부만 비교하는 등 더 무거운 중복 작업의 경우 중복 라인 제거기 가이드 옵션을 더 깊이 다룹니다.
역방향 vs 하강: 차이점은 무엇입니까?
리버스는 아무것도 정렬하지 않고 현재 줄 순서를 뒤집습니다. c, a, b 된다 b, a, c. 내림차순은 먼저 정렬된 다음 뒤집힙니다 c, a, b a에서 Z까지 내림차순은 다음과 같습니다 c, b, a.
원래 순서가 가장 오래된 항목이 먼저 있는 로그 파일과 같은 것을 의미하고 가장 새로운 항목을 먼저 원할 때 역방향을 사용합니다. Z 에서 A 로 또는 가장 큰 것부터 가장 작은 것까지 정렬된 목록을 원할 때 내림차순을 사용합니다. 내림차순 버튼은 뒤집을 것이 없기 때문에 역방향 및 셔플 모드에서 비활성화됩니다.
셔플은 충분히 무작위입니까?
셔플은 난수가 균일할 때 가능한 모든 순서에 동일한 기회를 제공하는 Fisher-Yates 알고리즘을 사용하며 해당 숫자를 브라우저's에서 가져옵니다 Math.random(). 그것은 독서 목록,재생 목록 또는 발표 순서를 무작위로 지정하는 데 적합합니다. 그것은 암호학적인 무작위 소스가 아니므로 누군가가 경품 추첨과 같이 결과를 예측하거나 이의를 제기 할 이유가있을 수있는 모든 것에 대한 잘못된 선택입니다. 그들을 위해,헌신적인 목록 랜덤마이저 가 더 잘 맞습니다. 다시 Shuffle 을 클릭하여 새로운 주문을 받으십시오.
민감한 목록을 온라인으로 정렬하는 것이 안전합니까?
이 도구를 사용하면 그렇습니다. 정렬 및 청소는 브라우저 탭의 JavaScript 에서 클라이언트 측에서 이루어집니다. 텍스트는 업로드되거나 저장되지 않으며 페이지가로드되면 도구가 네트워크와 계속 작동합니다. 이메일 주소,고객 이름 또는 내부 호스트 이름 목록은 결코 기계를 떠나지 않습니다.
실용적인 크기 제한은 서버 캡이 아닌 browser's 메모리입니다. 수만 개의 라인이 일반적인 노트북에서 즉시 정렬됩니다. 수백 메가바이트의 매우 큰 파일은 명령줄에서 더 잘 처리됩니다.
일반적인 줄 정렬 실수란 무엇입니까?
| 증상 | 원인 | 고치다 |
|---|---|---|
file10 위에 file2 다른 도구에서 |
일반 문자 비교 | 자연 정렬(여기서는 A~Z)을 사용하거나 sort -V |
| 대문자로 표시된 항목은 모두 상단에 있습니다 | 바이트 순서 정렬 | 로케일 인식 정렬 또는 사례 무시를 사용합니다 |
| 중복은 제거되지 않습니다 | 후행 공백이나 탭이 다릅니다 | 트림 공백을 켭니다 |
| "애플" 및 "애플" 둘 다 유지되었습니다 | 무시 케이스는 꺼져 있습니다 | 케이스 무시를 켭니다 |
1,000 1 로 정렬되었습니다 |
수천 구분 기호가 숫자를 끝냅니다 | 숫자 정렬 전에 쉼표를 제거하십시오 |
가격 $ 하단에 |
Line 은 숫자로 시작하지 않습니다 | 먼저 통화 기호를 스트립합니다 |
| 숫자 목록을 내림차순으로 하면 단어로 시작합니다 | 숫자가 아닌 선은 위쪽으로 반전됩니다 | 숫자가 아닌 줄을 먼저 제거합니다 |
| 출력은 예상보다 "removed"이 하나 더 있습니다 | 뒤에 오는 개행은 빈 마지막 줄을 만들었다 | 예상; 빈 줄이 삭제되었습니다 |
온라인 라인 분류기의 대안
| 도구 | 정렬 방법 | 노트 |
|---|---|---|
GNU sort |
sort -f (폴드 케이스), sort -n (숫자), sort -V (자연), sort -u (독특한), sort -r (역) |
스크립트 가능, 거대한 파일 처리; 보다 GNU 정렬 매뉴얼 |
shuf |
shuf list.txt |
명령줄에서 무작위 순서 |
| 쉘에서 길이로 정렬 | awk '{ print length, $0 }' list.txt | sort -n | cut -d' ' -f2- |
로케일에 따라 바이트 또는 문자를 계산합니다 |
| 스프레드시트 | 열에 붙여넣기, 데이터, 정렬 | 선이 여러 필드를 가질 때 좋습니다 |
| 코드 에디터 | "Lines" 정렬; 많은 편집기에서 명령 | 행동은 편집자에 따라 다릅니다 |
| 툴즈 라인 분류기 | 붙여넣기, 모드를 클릭합니다 | 라이브 미리보기, 한 패스로 청소, 클라이언트 측 |
참고하세요 sort 출력은 다음에 따라 다릅니다 LC_ALL 또는 LANG 로케일 설정,이것이 동일한 명령이 두 머신에서 다른 명령을 내릴 수 있는 이유입니다. 설정 LC_ALL=C 바이트 순서를 강제합니다.
목록을 단계별로 정렬합니다
- 열다 텍스트 줄 분류기 그리고 한 줄에 한 항목씩 목록을 붙여넣으세요.
- 단어와 파일 이름은 A~Z, 숫자는 숫자, 문자 수는 길이를 선택하세요.
- 목록이 문서나 스프레드시트에서 붙여넣어진 경우 트림 공백을 켭니다.
- 각 항목을 한 번 원할 경우 중복 제거를 켜십시오; 다른 대문자를 병합하려면 케이스 무시를 켜두십시오.
- 출력 카운트와 "removed"를 확인합니다.
- 복사를 클릭합니다.
목록에도 대문자 정규화가 필요한 경우 케이스 컨버터 가이드 제목, 문장 및 기타 사례를 설명합니다 텍스트 도구 허브 나머지 텍스트 유틸리티를 한 곳에서 수집합니다.



