본문 바로가기
프로그래밍 언어/Shell script(BASH)

[Bash/Shell script] Sort 함수 정리

by Physics 2021. 2. 5.
728x90

Sort 함수

sort는 텍스트로 된 파일의 행 단위 정렬을 할 때 사용하는 명령어이다. 이 명령어를 이용하면, 프로그램, 쉘 프로그램 등의 입력 값으로 사용되는 데이터를 직접 정렬 또는 편집할 때 편리사게 사용할 수 있다. 

1. Syntax of sort 

sort <option> <file_name>

  ※ NOTE 1: 기본값으로써, sort 함수는 주어진 텍스트 파일을 오름 차순으로 정렬한다. 
  ※ NOTE 2: sort 명령어는 숫자를 문자로 인식하고 표준 문자 정렬을 한다. 
        - 따라서, 숫자로 정렬하기 위해선 -n 옵션을 사용해야 한다.  
 

※ 옵션 

옵션 설명
-r 내림 차순 정렬
-k <n> 텍스트 파일을 <n> 번째 필드를 기준으로 정렬
-u 중복된 내용을 하나로 취급하여 유일 정렬
-t <seperator> 필드 구분자로 <seperator>를 사용한다
-n
--numeric-sort
숫자 순서로 정렬
-M
--month-sort
- 세글자로 된 월(Month)이름을 써서 월 순서로 정렬 (Jan, Feb,...) 
-b 정렬를 하기 위해 각각의 라인의 sort key를 찾을 때, space를 무시한다. 
-f 대소문자를 구분하지 않는다
-c 파일이 이미 정렬되어있는지 확인
- 만일 정렬이 되어있지 않을 경우, 에러 메시지를 출력하며, 종료를 하면서 1을 리턴한다. 
-o [저장할 파일명]
--output=[저장할 파일명]
저장할 파일 명을 명시한다.
명시하지 않을 경우, 화면에 출력한다. 
-m
--merge
이미 정렬된 두 개의 데이터 파일을 병합한다. 
-R
--random-sort
해시키 값으로 무작위 정렬한다. 

 

예시-1) 

#cat /etc/passwd |sort -k 4 -n -t ":"

/etc/passwd란 파일을 필드 구분자 ":"로 나누어진 파일의 4번째 필드를 기준으로 숫자정렬한다. 

예시-2) 정렬된 데이터들을 저장하는 경우 

# 첫번째 방법 
cat /etc/passwd/ |sort > passwd.sorted

# 두번째 방법 
sort /etc/passwd -o passwd.sorted

 

 

Reference: 
[1] ss64.com/bash/sort.html  
[2] linuxhint.com/bash_sort_command/


 

 

 

728x90

댓글