텍스트 데이터 처리에서 매우 자주 쓰는 두 도구.
sort는 줄 단위 정렬, uniq는 「인접한」 중복 제거.
보통 함께 sort | uniq 패턴.
sort.
sort file.txt — 알파벳순 정렬.
sort -n — 숫자순.
sort -r — 역순.
sort -u — 중복 제거(uniq 통합).
sort -k 2 — 두 번째 컬럼으로 정렬(공백 구분).
sort -t ',' -k 3 — CSV에서 3번째 컬럼.
uniq.
uniq은 「인접한 중복만」 제거 — 정렬 안 된 입력에는 부적합.
그래서 보통 sort | uniq.
uniq -c로 빈도 카운트(중복 횟수와 함께).
uniq -d로 중복인 것만, uniq -u로 유일한 것만.
표준 패턴 — 빈도 분석.
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head — 「IP 추출 → 정렬 → 빈도 카운트 → 빈도 역순 정렬 → 상위 10개」.
「가장 많이 접속한 IP」가 한 줄에 나옴.
큰 파일 처리.
sort는 메모리에 다 올림 → 큰 파일은 -S 1G(메모리 제한)·--parallel 4(병렬)·-T /tmp(임시 디렉토리) 옵션.
정말 큰 데이터는 awk·python 또는 데이터 처리 도구로.
한 줄 요약
sort는 알파벳·숫자·역순·컬럼 정렬, uniq은 인접 중복 제거(보통 sort | uniq).
uniq -c로 빈도 카운트.
빈도 분석 표준 패턴: sort | uniq -c | sort -nr | head.
더 알아볼 것
- awk로 컬럼 처리
- comm — 두 정렬된 파일 비교
- datamash — 통계 처리