본문으로 이동

Sort (유닉스): 두 판 사이의 차이

위키백과, 우리 모두의 백과사전.
내용 삭제됨 내용 추가됨
확장 옵션: 오탈자 보정
76번째 줄: 76번째 줄:


=== 파이프로 한정된 파일 정렬하기 ===
=== 파이프로 한정된 파일 정렬하기 ===
$ '''sort''' -t'|' -k2 zipcode
$ '''sort''' -t':' -k2 zipcode
Adam|12345
Adam|12345
Wendy|23456
Wendy|23456

2017년 5월 28일 (일) 01:29 판

sort는 표준 유닉스 명령어 프로그램으로서 입력어들이나 인수 목록들에 기입된 모든 파일들의 연속어들을 정렬된 순서로 출력한다. 정렬하기는 입력어 각각으로부터 도출된 하나 혹은 그 이상의 정렬 키들에 바탕을 두어 시행된다. 디폴트에 의해서 전체 입력어는 정렬 키로 처리된다. 빈 공백은 디폴트 필드 구분자로서 처리되어 사용된다. -r 플래그는 정렬 명령을 반대로 시행한다.

옵션

정렬 옵션

-b: 선행 공백 무시한다.

-f: 영어 소문자를 대문자로 처리한다. 즉, 대소문자 구별안한다.

-n: 비교 대상을 텍스트내의 숫자로 한정하여 정렬한다.

-R: 해시의 키값 기준으로 랜덤하게 정렬한다.

-r: 비교 결과를 역순(내림차순)으로 정렬한다.

확장 옵션

-c: 파일이 정렬되어 있는지 검사한다.

-k n: n번째 필드를 기준으로 정렬한다.

-m: 이미 정렬된 파일들을 병합한다. (정렬은 하지 않는다.)

-o: 표준 출력 대신 저장할 파일명을 명시한다.

-t: 필드 구분자를 지정해준다. (기본 구분자는 공백이다.)

-u: 정렬 후 중복된 내용을 제거한다.

현재 디렉터리를 파일 크기에 따라 정렬하기

$ ls -s | sort -n
  96 Nov1.txt
 128 _arch_backup.lst
 128 _arch_backup.lst.tmp
1708 NMON

알파벳 순서로 파일 정렬하기

$ cat phonebook
Smith, Brett     555-4321
Doe, John        555-1234
Doe, Jane        555-3214
Avery, Cory      555-4321
Fogarty, Suzie   555-2314
  
$ sort phonebook
Avery, Cory      555-4321
Doe, Jane        555-3214
Doe, John        555-1234
Fogarty, Suzie   555-2314
Smith, Brett     555-4321

숫자로 정렬하기

-n 옵션은 프로그램이 숫자값에 따라 정렬되도록 만든다:

$ du /bin/* | sort -n
4       /bin/domainname
24      /bin/ls
102     /bin/sh
304     /bin/csh

sort의 과거 버전에서는, +1 옵션은 프로그램 데이터의 두 번째 열을 ( +2은 세 번째 열을 정렬하고 나머지도 이와 같은 식으로) 정렬되도록 한다. 이것이 더 이상 지속되지 않는 경우, 대신 -k 옵션을 사용하여 같은 일을 한다. (주의 : "-k2"는 두 번째 열에 대한 것이다):

$ cat zipcode
Adam  12345
Bob   34567
Joe   56789
Sam   45678
Wendy 23456
  
$ sort -nk 2 zipcode
Adam  12345
Wendy 23456
Bob   34567
Sam   45678
Joe   56789

파이프로 한정된 파일 정렬하기

$ sort -t':' -k2 zipcode
Adam|12345
Wendy|23456
Bob|34567
Sam|45678
Joe|56789

반대로 정렬하기

-r 옵션은 단순히 정렬하기 순서를 반대로 뒤집는다:

$ sort -nrk 2 zipcode
Joe   56789
Sam   45678
Bob   34567
Wendy 23456
Adam  12345

같이 보기

바깥 고리