[unix] sort

unix . linux 2013. 4. 1. 15:34

출처: http://ra2kstar.tistory.com


지금까지 파일의 내용을 정렬하기 위해서 C 나 JAVA를 이용해서 코드를 짜고, 그것을 이용하여 정렬을 해왔다. 

그러나, 직접 프로그램을 짜지 않고도, 쉘에서 sort 명령을 이용하여 파일을 정렬할 수 있다


sort 명령은 사용자가 지정한 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합(Merge)할 때 사용할 수 있다. 


  sort 

sort [-옵션] [-o 저장될 파일명] 정렬할 파일명 [병합할 파일명....]

옵션 

-n    라인의 각 필드를 비교하는 대상을 숫자로 한정 

-f     영어를 정렬할 때, 대소문자 구별안함 

-r     출력 순서를 역순으로 

-b    앞에 붙는 공백 무시

-t     필드 구분자 지정

-m   정렬된 파일을 병합

-u    정렬후, 중복행 제거

-o    저장할 파일명을 명시, 명시하지 않으면 화면에 출력


만약 옵션을 지정해주지 않는다면, ASCII 코드 순으로 정렬하며, 정렬할 파일을 지정해주지 않으면 커멘드 입력으로 받아들인다. 기본적으로 맨 왼쪽 부터 구분자(스페이스나 탭)을 이용하여 정렬을 하는데, '+숫자' 를 추가하면 해당 번째의 필드부터 정렬할 수 있다. 


  사용 예 

우선 sort 명령을 확인해보기 위해서 다음과 같이 sort.txt 파일을 생성했다. 

[naddru@ ~]$ cat sort.txt

banana  3

camera  1

apple   4

date    2


그 후, 기본적인 sort 명령을 사용해 보면 다음과 같은결과가 나타난다. 

sort [파일명]

[naddru@ ~]$ sort sort.txt

apple   4

banana  3

camera  1

date    2


만약 두번째 필드를 기준으로 정렬하고 싶다면, 

sort +1 [파일명]
[naddru@ ~]$ sort +1 sort.txt
camera  1
date    2
banana  3
apple   4

마지막으로 파일에 저장하고 싶다면 -o 옵션을 사용한다. 
sort [파일명] -o [저장할 파일명]


  결과화면 

'unix . linux' 카테고리의 다른 글

[unix] 원격파일전송[scp / rsync]  (0) 2013.04.01
[unix] awk  (0) 2013.04.01
[unix] tar.gz 압축 및 해제  (0) 2013.04.01
[unix] 용량확인[df/ du]  (0) 2013.04.01
[unix] 서비스 재시작(mysql, httpd, service)  (0) 2013.04.01
Posted by airlueos
,