C.W.K.
Stream
Lesson 07 of 10 · published

sort + uniq

~12 min · sort, uniq, frequency

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

빈도 질문을 푸는 짝

'이 파일/로그/출력에서 가장 흔한 X 는 뭐?' 라는 질문의 답은 항상 sort | uniq -c | sort -rn. 이 주문 외워. 이 한 줄이 한 종류의 질문을 다 풀어.

sort flag

  • -n — 숫자 정렬 (10 이 9 다음, 1 다음 아님).
  • -r — 역순.
  • -h — 사람용 숫자 (1K, 5M, 2G 정확히 정렬).
  • -u — unique (인라인 중복 제거. uniq 보다 가벼움).
  • -k 2 — 두 번째 공백 구분 필드 기준.
  • -t ',' — 쉼표 구분자 (CSV).

uniq flag

  • -c — 각 줄 앞에 개수.
  • -d — 중복만.
  • -u — 중복 아닌 것만.

큰 함정: uniq인접 줄만 dedupe. 거의 항상 sort | uniq, uniq 단독 아님.

빈도 one-liner

cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head

해석: 로그 줄의 첫 필드 (IP) 추출 → 같은 거 모음 → 개수 세기 → 개수 내림차순 → top 10. 한 파이프로 production 급 분석 쿼리.

Code

프로젝트의 top 확장자·bash
find . -type f -name '*.*' | awk -F. '{print $NF}' \
  | sort | uniq -c | sort -rn | head
가장 큰 디렉터리·bash
du -sh */ 2>/dev/null | sort -h | tail
# Or in size-of-output style
du -h --max-depth=1 . 2>/dev/null | sort -hr | head

External links

Exercise

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -20 으로 top 20 command 확인. 로그 파일 (또는 dmesg) 에서 grep -oE '\b[A-Z]+\b' | sort | uniq -c | sort -rn | head 으로 흔한 대문자 토큰 보기.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.