서버 운영 중 수만 줄의 로그 파일에서 특정 데이터를 찾아내야 할 때, 무질서하게 나열된 텍스트는 분석을 방해하는 가장 큰 요소입니다. 이때 우리에게 구원투수가 되는 것이 바로 리눅스 sort 명령어입니다.
단순한 알파벳 순 정렬을 넘어, 숫자의 크기를 비교하거나 특정 필드만을 골라 정렬하는 고급 기법까지 익혀두면 데이터 처리 속도가 비약적으로 향상됩니다. 오늘 봉봉테크에서 sort 명령어의 실무 활용법을 완벽히 마스터해 보시기 바랍니다.
1. 리눅스 sort 명령어란?
sort 명령어는 입력받은 텍스트 파일의 내용을 정해진 규칙에 따라 행 단위로 정렬하여 출력하는 도구입니다. 원본 파일은 건드리지 않고 결과만 표준 출력으로 보여주기 때문에 안전하며, 파이프라인(|)을 통해 다른 명령어와 결합할 때 그 진가를 발휘합니다.
2. 실무에서 가장 많이 쓰는 핵심 옵션 TOP 5
단순히 sort 파일명만 입력하면 기본적으로 아스키(ASCII) 코드 순서로 정렬됩니다. 하지만 우리가 원하는 결과를 얻으려면 아래의 옵션들이 필수적입니다.
- -r (--reverse): 내림차순(역순)으로 정렬합니다.
- -n (--numeric-sort): 문자열이 아닌 숫자 값으로 비교하여 정렬합니다. (10이 2보다 뒤에 오게 함)
- -u (--unique): 정렬 후 중복된 행을 제거하고 하나만 남깁니다. (uniq 명령어와 유사)
- -k (--key): 특정 번째 열(Field)을 기준으로 정렬합니다. (예: 2번째 단어 기준)
- -t (--field-separator): 필드 구분자를 지정합니다. (예: 콤마나 콜론 기준 구분)
3. 상황별 sort 명령어 활용 가이드
| 상황(Problem) | 해결 명령어(Solution) | 설명 |
|---|---|---|
| 파일 용량순 정렬 | du -h | sort -h |
사람이 읽기 쉬운(Human) 단위 정렬 |
| 비밀번호 파일 사용자순 | sort -t: -k1 /etc/passwd |
':' 구분자 사용, 1번째 필드 기준 |
| 중복 없는 아이피 추출 | sort -u ip_list.txt |
정렬과 동시에 중복 데이터 제거 |
| 숫자 내림차순 정렬 | sort -rn data.txt |
가장 큰 숫자부터 상단에 배치 |
4. 꿀팁: sort와 다른 명령어의 환상적인 조합
리눅스 환경에서 sort는 혼자일 때보다 동료들과 함께일 때 빛납니다. 특히 중복 횟수를 카운트하는 uniq -c와 결합해 보세요.
가장 많이 접속한 IP TOP 5 찾기:
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -5
* 이 명령어 하나로 로그 분석의 기초가 해결됩니다.
결론: 데이터 가공의 핵심 기술
리눅스 sort 명령어는 단순한 정렬을 넘어 데이터 마이닝의 필수 도구입니다. 옵션 하나로 수천 개의 행을 단숨에 정리하는 쾌감을 느껴보세요. 오늘 배운 -n, -r, -k 옵션만 손에 익혀도 업무 효율이 확연히 달라질 것입니다.
🚀 지금 바로 연습해 보세요!
여러분의 디렉토리에서 ls -l | sort -nk 5를 입력해 보세요. 파일 크기 순서대로 정렬된 리스트를 보실 수 있습니다.
포스팅이 도움이 되셨다면 댓글과 공유 부탁드립니다!
| 점검 항목 | 사용할 옵션 | 확인 사항 |
|---|---|---|
| 숫자 크기 비교 | -n |
문자열 정렬(1, 10, 2) 방지 |
| 내림차순 정렬 | -r |
큰 값/최신 데이터 상단 배치 |
| 중복 데이터 처리 | -u |
유니크한 값만 추출할 때 사용 |
| 특정 열 정렬 | -k [숫자] |
몇 번째 단어를 기준으로 할지 지정 |