[linux][리눅스 sort 명령어]
# 리눅스 sort 명령어
<기본>
# cat /etc/passwd | sort
-> 정렬한다
# cat /etc/passwd | sort >> passwd.sort
-> 정렬해서 다른파일로 저장한다.
# cat /etc/passwd | sort | uniq -c >> passwd.sort
-> 정렬하고 중복을 제거하고 저장한다(★★★가장 많이 유용하게 사용한다)
-> 단일 키워드로 grep을 잡아서 여러 번 구하는 것 보다...
하나의 필드를 일렬로 구한다음에... sort | uniq -c를 사용하면
한번에 모든 데이터의 sum을 집계할 수 있어 효율적이다.
<기본 옵션>
# cat /etc/passwd | sort -r
-> 역순으로 정렬한다
# cat /etc/passwd | sort -c
-> 파일이 정렬되어있는지 검사한다
# cat /etc/passwd | sort -f
-> 파일을 대소문자 구분하지않고 정렬한다
<확장 옵션>
# cat /etc/passwd | sort -k 4 -t ":"
-> 파일의 4번째필드로 정렬한다(기본구분자는 공백)
-> -k는 필드번호
-> -t는 필드구분자
# cat /etc/passwd | sort -k 4 -n -t ":"
-> 파일의 4번째필드로 숫자 정렬한다(★★)
-> -n은 숫자정렬
# cat /etc/passwd | awk -F ":" '{print $4}' | sort -u
-> 파일의 4번째 필드만 가져온 것을 정렬한다. 단 중복된 내용은 제거한다
<기타>
sort [-옵션] [-o 저장될 파일명] 정렬할 파일명 [병합할 파일명....]
# 옵션
-n 라인의 각 필드를 비교하는 대상을 숫자로 한정
-f 영어를 정렬할 때, 대소문자 구별안함
-r 출력 순서를 역순으로
-b 앞에 붙는 공백 무시
-t 필드 구분자 지정
-m 정렬된 파일을 병합
-u 정렬후, 중복행 제거
-o 저장할 파일명을 명시, 명시하지 않으면 화면에 출력
# ★만약 두번째 필드를 기준으로 정렬하고 싶다면,
sort +1 [파일명]
# 마지막으로 파일에 저장하고 싶다면 -o 옵션을 사용한다.
sort [파일명] -o [저장할 파일명]
<출처>
http://slog2.egloos.com/3534809
http://ra2kstar.tistory.com/150
////