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 |