강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

파일내용정렬 마법사 sort 실무4편: 지정한 열을 기준으로 오름차순 정렬과 내림차순(역순) 정렬하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

파일내용정렬 마법사 sort 실무4: 지정한 열을 기준으로 오름차순 정렬과 내림차순(역순) 정렬하기

 

 

 

 

 

지금까지의 예에서는 모두 각 행의 첫번째 필드를 대상으로 정렬하였다.

 

 

 

  그렇다면 첫번째 필드를 무시하고 각 행의 두번째 필드들만을 대상으로 정렬할 수는 없을까?

 

각 행의 두번째 필드를 기준으로 정렬하고자 한다면 아래와 같이 -k옵션을 사용하면 된다.

 

 

 

 지금까지의 예들은 모두 각 행의 첫번째 필드인 (각행의 숫자들, 0,1,2,....,9) 숫자를 대상으로 정렬하였다.

 

 

 

 -k옵션을 사용하면  각행의 두번째 필드를 기준으로 정렬을 수행한다.

 

 

 

 

 

[root@sulinux ~]# sort -k 2 textfile
7       eight   two

0       five    five

6       four    six

1       nine    one

4       one     nine

3       seven   three

9       six     four

5       ten     zero

2       three   seven

8       two     eight
[root@sulinux ~]#

 

 

 

결과를 보면 각 행의 첫번째 필드는 무시되고 두번째 필드를 기준으로 오름차순 정렬된 것을 알 수 있다.

 

 

 

 

 

이번에는 각 행의 두번째 필드들을 기준하여 내림차순(역순)정렬을 한 예이다.

 

 

 

 특정필드를 대상으로 내림차순 정렬하는 예이다.

 

 

 

  -k옵션은 정렬기준이 될 필드를 지정한 것이며 -r은 내림차순(역순)정렬을 위한 옵션이다.

 

 

 

 이 두 옵션을 함께 사용하였다.

 

 

 

 아래의 예를 보자.

 

[root@sulinux ~]# sort -rk 2 textfile
8       two     eight

2       three   seven

5       ten     zero

9       six     four

3       seven   three

4       one     nine

1       nine    one

6       four    six

0       five    five

7       eight   two
[root@sulinux ~]#

 

 

 

위의 결과를 보면 첫번째 필드인 숫자들과는 무관하게 두번째 필드를 기준으로 내림차순 정렬이 된 것을 확인할 수 있다.

 

 

 

 

 

이번에는 3번째 필드를 대상으로 오름차순 정렬한 것이다.

 

 

 

 -k옵션만 사용되었기 때문에 지정한 필드를 기준으로 오름차순 정렬된 것이다.

 

 

 

 

 

[root@sulinux ~]# sort -k 3 textfile
8       two     eight
0       five    five
9       six     four
4       one     nine
1       nine    one
2       three   seven
6       four    six
3       seven   three
7       eight   two
5       ten     zero
[root@sulinux ~]#

 

 

 

그리고 위의 결과를 보면 각행의 세번째 필드들을 기준으로 정렬되었음을 알 수 있다.

 

 

 

  이번에는 3번째 필드를 기준으로 내림차순(역순)정렬을 한 예이다.

 

 

 

 -r옵션과 -k옵션이 함께 사용되었음을 확인하기 바란다.

 

 

 

 

 

[root@sulinux ~]# sort -rk 3 textfile
5       ten     zero
7       eight   two
3       seven   three
6       four    six
2       three   seven
1       nine    one
4       one     nine
9       six     four
0       five    five
8       two     eight
[root@sulinux ~]#

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  92 명