| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 정규표현식
- sysadmin
- 명령어
- shell
- bash
- terminal
- 사용자관리
- 자바스크립트
- 시스템관리
- UnixCommand
- linuxcommand
- UNIX
- 터미널
- PackageManagement
- 리눅스
- Unix명령어
- js
- tcsh
- coreutils
- environment
- 유닉스
- linux
- JavaScript
- 쉘스크립트
- 파일시스템
- php
- 유닉스명령어
- cups
- Solaris
- 리눅스명령어
Archives
- Today
- Total
ioerror
sort 사용법 및 옵션 - 텍스트 파일의 행 단위 데이터를 정렬하고 중복을 제거하는 명령 본문
반응형

sort - Sort lines of text files
텍스트 파일이나 표준 입력으로 들어오는 데이터의 각 행을 정렬하여 출력하는 유닉스 및 리눅스 기본 명령어이다. 숫자의 크기 비교, 알파벳순 정렬, 특정 칼럼(구분자 기반) 기준 정렬, 중복 행 제거 등 다양한 데이터 가공 작업에 사용된다. 파이프라인(|)과 조합하여 로그 분석이나 대용량 데이터 처리 시 핵심 도구로 활용된다.
1. sort 용도
- 로그 파일에서 특정 열(IP 주소, 요청 시간 등)을 기준으로 순서를 정렬하거나 최다 발생 항목을 추출하는 상황에서 사용된다.
- uniq 명령어와 조합하여 중복 데이터를 집계하거나, -u 옵션으로 정렬과 동시에 중복 행을 제거할 때 자주 활용된다.
2. sort 서식
sort [OPTION]... [FILE]...
3. sort 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -n, --numeric-sort | 문자열이 아닌 순수한 숫자 크기를 기준으로 정렬한다. | 모든 유닉스/리눅스 |
| -r, --reverse | 정렬 결과를 내림차순(역순)으로 뒤집어 출력한다. | 모든 유닉스/리눅스 |
| -k, --key=KEYDEF | 정렬 기준이 될 칼럼(필드)의 위치를 지정한다 (e.g. -k 2). | 모든 유닉스/리눅스 |
| -t, --field-separator=SEP | 칼럼을 구분할 구분자(delimter)를 지정한다 (기본값: 공백/탭). | 모든 유닉스/리눅스 |
| -u, --unique | 정렬 시 중복된 행을 하나만 남기고 제거한다. | 모든 유닉스/리눅스 |
| -h, --human-numeric-sort | 사람이 읽기 쉬운 숫자 단위(2K, 1G 등)를 인식하여 정렬한다. | GNU Coreutils Linux |
| -V, --version-sort | 파일 버전 번호 형태(v1.2, v1.10 등)를 올바른 순서로 정렬한다. | GNU Coreutils Linux |
| -R, --random-sort | 해시 값을 기준으로 행의 순서를 무작위로 섞는다. | GNU Coreutils Linux |
| -c, --check | 파일이 이미 정렬되어 있는지 확인하고, 정렬되지 않은 경우 경고를 출력한다. | 모든 유닉스/리눅스 |
| -o, --output=FILE | 정렬 결과를 파일로 저장한다 (원본 파일 지정 시 덮어쓰기 가능). | 모든 유닉스/리눅스 |
# 쉼표(,)를 구분자로 2번째 칼럼(숫자) 기준 내림차순 정렬 및 중복 제거
sort -t',' -k2,2nr -u data.csv
# userC,95,active
# userA,88,active
# userB,72,inactive
# du 명령 결과에서 용량이 큰 순서대로 상위 항목 출력
du -sh * | sort -rh | head -n 3
# 1.2G video.mp4
# 450M data.tar.gz
# 120M images
- userC,95,active: 2번째 숫자가 가장 높은 행이 최상단에 정렬된 결과이다.
- 1.2G video.mp4: human-numeric 옵션(-h)을 사용하여 G, M 단위 크기순으로 정확히 내림차순 정렬된 결과이다.
4. sort 특이사항(유의사항)
- 기본 정렬 방식은 사전식(Lexicographical) 문자열 비교이므로, 숫자 정렬 시 -n 옵션 없이 정렬하면 10이 2보다 먼저 오는 현상이 발생한다.
- 로케일(Locale) 환경변수(LC_ALL 또는 LANG)에 따라 정렬 순서(대소문자 처리, 특수문자 우선순위)가 달라질 수 있으므로, 일관된 정렬 결과가 필요할 경우 LC_ALL=C sort 형태로 실행하는 것이 권장된다.
- 원본 파일로 정렬 결과를 다시 저장할 때 리다이렉션(sort file.txt > file.txt)을 사용하면 파일 내용이 모두 erased(빈 파일이 됨)되는 문제가 발생하므로, -o 옵션(sort -o file.txt file.txt)을 사용해야 한다.
관련 명령어들
- uniq: 정렬된 텍스트에서 연속되는 중복 행을 제거하거나 집계한다.
- cut: 텍스트 파일의 각 행에서 특정 칼럼을 추출한다.
- awk: 필드 기반의 고도화된 텍스트 처리 및 정렬 작업을 수행한다.
- shuf: 파일의 행을 무작위로 섞는다. GNU Coreutils Linux
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| split 사용법 및 옵션 - 대용량 파일을 지정한 크기나 라인 수 단위로 분할하는 명령 (0) | 2026.07.30 |
|---|---|
| source 사용법 및 옵션 - 현재 셸 환경에서 스크립트 파일을 직접 읽어 실행하는 명령 (0) | 2026.07.30 |
| sleep 사용법 및 옵션 - 지정한 시간 동안 프로세스 실행을 대기(지연)시키는 명령 (0) | 2026.07.29 |
| shutdown 사용법 및 옵션 - 시스템 전원을 안전하게 종료하거나 재부팅하는 명령 (0) | 2026.07.29 |
| shareall 사용법 및 옵션 - NFS 공유 자원을 일괄적으로 공유(수출) 처리하는 명령 (0) | 2026.07.29 |
Comments