가끔씩 업무를 하다보면 많은 양의 데이타를 특정 필드나 값을
기준으로 정렬해서 제출해야 되는 일이 생기조.^^;;
오라클 DB 테이블이면 쿼리문에 order by 로 간단하게 정렬 하면 되고요.
리눅스 서버 환경에서는 sort 명령어로 정렬이 가능합니다.
시작합니다.
기본 사용법
sort 파일 또는 cat 파일|sort
첫번째 문자부터 오름차순으로 정렬
만약에 문자가 동일하면 다음 문자를 기준으로 오름차순 정렬합니다.
옵션 사용법
-r : 내림차순으로 정렬
sort -r 파일
다른 옵션들과 함께 -r 옵션을 사용하면 무조건 내림차순으로 정렬됩니다.
-n : 문자를 숫자형으로 인식해서 정렬
sort -n 파일
만약에 숫자가 아닌 문자가 있을경우에는
숫자까지만을 숫자형으로 인식하고 뒤로는 문자의 내림차순으로 정렬됩니다.
-k : 정렬기준을 단어(필드)로 지정
sort -k 2 파일
2번째 필드 문자를 기준으로 정렬
sort -k 1,2 파일
1번째 필드 문자 기준으로 정렬하고
동일한 문자면 2번째 필드 문자를 기준으로 연속적으로 정렬합니다.
여기서 주의해야 될게 있습니다 !!!
여러개 필드를 지정해서 정렬할때 연속적인 번호만 된다는 거에요.^^;
-k 1,3 은 안됩니다.
-k 2,5 도 안됩니다.
-k 4,2 역시 안됩니다.
-k 2,3 과 -k 1,2 와 -k 4,5 이렇게 숫자가 연속적일때만 됩니다.
그렇지만 방법은 있어요.ㅋ
-k 옵션에 필드 번호를 따로따로 다 적어주면 됩니다.
sort -k 1,1 -k 3,3 파일
이렇게요. 순차적으로 1번 필드 정렬 먼저하고 동일하면 3번 필드 정렬하게 됩니다.
(참고)
1,1 은 1번 필드에서 1번 필드까지 정렬기준으로 하겠다는 의미인데요.
이런 표기법으로 적어야 적용이 된다는점 주의하세요.
-k 옵션은 내용이 좀 길지만 꼭 익혀두세요.
실업무에 유용하게 자주 사용하게 되더라구요.ㅋ
-t : 필드 구분자 지정
주로 -k 옵션과 함께 쓰입니다.
리눅스 기본 필드구분자는 공백,탭으로 지정되어 있습니다.
다른 문자로 할 필드구분자를 할 경우에 사용하는 옵션입니다.
sort -t "#" -k 3 파일
필드구분자를 #로 지정해서 3번째 필드문자를 정렬기준으로 내림차순으로 정렬합니다.
-u : 중복된 문자열 제거
sort -u 파일
내림차순으로 정렬하면서 동일한 문자열이면 하나만 표시합니다.
다른 옵션들도 몇개 더 있는데요. 거의 사용하지 않더라구요.
여기까지입니다.
갑자기 슬퍼지네요. 친구가 카톡으로 랍스터 먹는다고 자랑을 합니다. ^^;;
'IT > LINUX' 카테고리의 다른 글
리눅스 UTF-8 EUC-KR 인코딩 변환 (0) | 2020.09.03 |
---|---|
리눅스 문자열 검색 grep 명령어 (0) | 2020.08.31 |
리눅스 프로세스 기동 시간 (4) | 2020.08.29 |
대용량파일 문자열검색 리눅스 명령어 fgrep (4) | 2020.08.28 |
리눅스 계정 암호 만료일 확인 (4) | 2020.08.27 |
댓글