728x90
sort
- 텍스트로 된 입력 내용을 정렬하여 화면에 출력
- 형식 : sort [옵션] [파일]
- 사용 예
- sort test
- sort –fd test
- sort –k 2 –nr –o sort.out test
기본 정렬
- sort 명령을 옵션 없이 이용하면 환경 변수 LC_COLLATE의 값에 따라 다르게 정렬됨
- LC_COLLATE가 없으면 LANG 값에 따라 정렬 순서가 달라짐
- 현재 환경 변수의 설정값은 env와 grep 명령으로 확인
- 영문 유니코드로 설정되어 있음을 나타냄
- 정렬 순서 : 공백 문자, 특수 문자, 숫자, 영문자의 순 (영문자는 대소문자 구분하지 않음)
$ env | grep LC_COLLATE
$ env | grep LANG
LANG=en_US.UTF-8
$
$ vi test_sort
$ cat test_sort
This is a test file.
1234
Unix
unix
_cshrc
~Hi~!
023
80
@
#include
abcd
{abc}
?
$
$ sort test_sort
?
@
023
1234
80
{abc}
abcd
_cshrc
~Hi~!
#include
This is a test file.
unix
Unix
$
- 환경변수값을 en_US.UTF-8에서 ‘C’로 바꿔 언어를 영문 아스키로
- LANG의 값을 ‘C’로 바꾸면 아스키 코드값에 따라 정렬
- 정렬 순서 : 숫자, 영문 대문자, 영문 소문자의 순
- 특수 문자는 숫자보다 앞에, 숫자와 대문자 사이, 대문자와 소문자 사이, 소문자 뒤에 등 아스키 코드값에 따라 정렬
$ LANG=C
$ env | grep LANG
LANG=C
$
$ sort test_sort
023
#include
1234
80
?
@
This is a test file.
Unix
_cshrc
abcd
unix
{abc}
~Hi~!
$
사전식으로 정렬 :-d
- 특수 문자들을 무시하고 문자와 숫자만 고려하여 정렬
- 공백 문자, 숫자, 소문자, 대문자의 순
$ sort –d test_sort
?
@
023
1234
80
{abc}
abcd
_cshrc
~Hi~!
#include
This is a test file.
unix
Unix
$
역순으로 정렬 : -r
- 기본 정렬의 역순으로 정렬
$ sort –r test_sort
Unix
unix
This is a test file.
#include
~Hi~!
_cshrc
abcd
{abc}
80
1234
023
@
?
$
필드 정렬 : –k
- 첫 번째 문자가 아닌 필드를 기준으로 정렬
- 필드 구분자는 특별히 지정하지 않으면 공백이나 탭 문자를 기준으로 나뉨
$ vi test_sort2
$ cat test_sort2
001 Hong Gil-Dong 80 M
002 Park Ji-Sung 76 M
003 Cha Doo-Ri 90 M
004 Park Chan-Ho 88 M
005 Kim Yun-A 50 F
006 Bae Sue-Ji 48 F
007 Han So-Ri 49 F
$
- 두 번째 필드인 성에 따라 정렬
$ sort –k 2 test_sort2
006 Bae Sue-Ji 48 F
003 Cha Doo-Ri 90 M
007 Han So-Ri 49 F
001 Hong Gil-Dong 80 M
005 Kim Yun-A 50 F
004 Park Chan-Ho 88 M
002 Park Ji-Sung 76 M
$
필드 구분자 지정하기 : –t
- 필드가 공백 문자가 아닌 다른 문자로 구분되어 있으면 –t 옵션을 이용해 필드 구분자 지정할 수 있음
- 필드 구분자(:)를 기준으로 필드를 구분하고 첫 번째 필드인 사용자 이름을 기준으로 정렬
$ sort –t: /etc/passwd
avahi-autoipd:x:105:113:......
avahi:x:111:117:......
backup:x:34:34:backup:/var/backups:......
bin:x:2:2:bin:/bin:/usr/sbin/nologin
colord:x:113:21:colord colour management daemon......
......
$
728x90
'프로그래밍 > Unix' 카테고리의 다른 글
[유닉스] 중복 삭제 ( uniq ) (0) | 2020.04.20 |
---|---|
[유닉스] 분할 ( split ) (0) | 2020.04.20 |
파일 및 디렉토리 검색 ( wc, ,grep, egrep, fgrep ) (0) | 2020.04.19 |
[유닉스] 파일 송신, 수신 (telnet, rlogin, ssh, ftp, rcp) (0) | 2020.04.17 |
[유닉스] 통신 명령어( write, wall, talk, mesg ) (0) | 2020.04.16 |