Published 2020. 11. 4. 17:37
728x90
반응형

sort 명령어

사용자가 지정한 파일의 내용을 정렬하거나 정렬된 파일의 내용을 병합할 때 사용한다.

# sort [옵션] ... [파일명] ...

[자주 사용하는 옵션]
-r, --reverse : 역순으로 정렬한다.
-k, --key=POS1 : 정해진 필드를 기준으로 정렬한다. ex) sort -k2 : 2번째 필드로 정렬
-u, --unique : 정렬 후 중복된 내용을 제거한다.
-t, --field-separator=SEP : 필드 구분자를 지정, -k 옵션으로 필드를 지정해서 사용할 때 좋다.
-f, --ignore-case : 대소문자를 구분하지 않고 정렬한다.

 

sort 명령어 옵션 사용

기본적으로 명령어를 사용하면 결과는 다음과 같다.

// sort 명령어를 사용할 텍스트 파일
# cat sort.txt
b
c
d
e
a
f

// sort 명령어를 사용하면 오름차순으로 정렬된다.
# sort sort.txt
a
b
c
d
e
f

// 다음과 같이 cat 명령어를 통해 파일을 열고 파이프를 통해 sort 명령어를 사용해도 된다.
// 위와 같은 결과 출력
# cat sort.txt | sort
a
b
c
d
e
f

기본적으로 sort 명령어를 사용하면 오름차순으로 정렬된다.

다음으로, 자주 사용하는 옵션을 사용한 결과를 확인해볼 수 있다.

[ -r, --reverse ]

-r 옵션을 사용하게 되면 역순으로 정렬하게 된다.

// -r 옵션으로 역순으로 정렬
# sort -r sort.txt
f
e
d
c
b
a

// 파이프를 통해 순서를 바꿔서 사용 가능, 위와 같은 결과.
# cat sort.txt | sort -r
f
e
d
c
b
a

 

[ -k, --key=POS1 ]

-k 옵션으로 해당 필드를 기준으로 정렬할 수 있다.

// 원본 파일
# cat sort2.txt
4 b
2 c
3 d
1 e
2 a
5 f

// 첫 번째 필드를 기준으로 정렬
# sort -k1 sort2.txt
1 e
2 a
2 c
3 d
4 b
5 f

// 두 번째 필드를 기준으로 정렬
# sort -k2 sort2.txt
2 a
4 b
2 c
3 d
1 e
5 f

 

[ -u, --unique ]

-u 옵션을 사용하면 정렬한 후에 중복된 값을 제거한다.
추가적으로, uniq 명령어를 사용했을 때에는 연속적으로 중복된 값만 제거한다.

// 원본 파일
# cat sort3.txt
b
c
d
e
e
e
a
a
a
e
e
a
a
a
f

// -u 옵션으로 정렬 후 중복값 제거
# sort -u sort3.txt
a
b
c
d
e
f

 

[ -t, --field-separator=SEP ]

-t 옵션 뒤에 필드 구분자를 지정해서 정렬할 수 있다.
-k 옵션과 같이 사용하면 좋을 것 같다.

// 원본 파일
# cat sort4.txt
6,2
2,3
4,5
1,4
3,5
3,5

// -t 옵션을 사용해 콤마(,) 를 구분자로 지정해서 정렬
// 첫 번째 값으로 정렬해준다.
# sort -t, sort4.txt
1,4
2,3
3,5
3,5
4,5
6,2

// -k 옵션과 같이 사용해서 정렬할 수 있다.
// 두 번째 필드 값으로 정렬
# sort -t, -k2 sort4.txt
6,2
2,3
1,4
3,5
3,5
4,5

 

[ -f, --ignore-case ]

대소문자를 구분하지 않고 정렬한다.

// 원본 파일
# cat sort5.txt
d
E
e
f
c
D
A
a
B
b
C

// -f 옵션으로 대소문자 구분 없이 정렬
// 대문자가 먼저 앞으로 온다는 것을 알 수 있다.
# sort -f  sort5.txt
A
a
B
b
C
c
D
d
E
e
e
f

 

기본적으로 사용하는 옵션만 사용하기 때문에 자주 사용하는 옵션만 알아도 충분하다고 생각한다.
이 외에도 리눅스 메뉴얼에서 sort 명령어에 대해 확인할 수 있으니 확인해보자.

728x90
반응형

'리눅스 > Command' 카테고리의 다른 글

리눅스 find 명령어  (0) 2020.12.13
리눅스 uniq 명령어  (0) 2020.11.09
리눅스 lsof 명령어  (0) 2019.10.03
리눅스 df 명령어와 du 명령어  (0) 2019.10.03
리눅스 IP 차단하기 - route & iptables  (0) 2019.09.01
복사했습니다!