sort — 리눅스 기본 명령어
Linux / 리눅스 기본 명령어 / sort.html
텍스트 파일의 줄을 정렬하는 명령어. 중복 제거·숫자 정렬·역순 등 지원.
기본 정보
| 명령어 이름 | sort |
|---|---|
| 한 줄 소개 | 텍스트 파일의 줄을 정렬하는 명령어. 중복 제거·숫자 정렬·역순 등 지원. |
| 제공 | GNU coreutils (모든 Linux 배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/sort.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 기본 명령어 (태그: 정렬, 텍스트, 리눅스, 기본) |
이 명령어는 무엇인가?
sort는 텍스트 파일의 줄을 정렬하는 명령어입니다. 사전순, 숫자순, 역순, 중복 제거 등 다양한 정렬 옵션을 제공하며, 파이프와 함께 다른 명령어의 결과를 정렬할 때 자주 사용됩니다.
-k 옵션으로 특정 열 기준 정렬, -t 옵션으로 구분자 지정 등 데이터 처리에 유용한 기능을 갖추고 있습니다.
어떤 문제를 해결하는가?
- 파일 내용을 사전순으로 정렬합니다.
- 로그를 시간순·역순으로 정렬합니다.
- 중복된 줄을 제거합니다.
- 특정 열을 기준으로 데이터를 정렬합니다.
주요 기능
기본 정렬
줄을 사전순(ASCII)으로 정렬합니다.
- 활용 상황: 이름 목록 등을 알파벳순으로 정리할 때.
- 얻는 결과: 정렬된 결과가 출력됩니다.
- 제한 사항: 대소문자를 구분할 수 있습니다 (LC_ALL=C).
숫자 정렬 (-n)
숫자로 인식해 정렬합니다.
- 활용 상황: 크기·점수 등 숫자 데이터를 정렬할 때.
- 얻는 결과: 10이 9보다 뒤에 옵니다.
- 제한 사항: 숫자가 아닌 값은 0으로 처리됩니다.
역순 정렬 (-r)
정렬 결과를 역순으로 출력합니다.
- 활용 상황: 가장 큰 값부터 보고 싶을 때.
- 얻는 결과: 내림차순 결과가 출력됩니다.
- 제한 사항: 다른 정렬 옵션과 함께 사용됩니다.
중복 제거 (-u)
중복된 줄을 제거합니다.
- 활용 상황: 목록에서 중복 항목을 없앨 때.
- 얻는 결과: 고유한 줄만 남습니다.
- 제한 사항: 중복 판정은 정렬 후에 이루어집니다.
설치 및 실행
기본 탑재 확인
모든 Linux 배포판에 기본 포함되어 있습니다.
which sort
sort --version
별도 설치 (경량 환경)
일반적으로 이미 설치되어 있습니다.
sudo apt install coreutils # Debian/Ubuntu
실제 사용 예제
기본 정렬
파일을 사전순으로 정렬합니다.
# 파일 정렬
touch names.txt
echo -e "Charlie\nAlice\nBob" > names.txt
sort names.txt
# 결과:
# Alice
# Bob
# Charlie
# 역순 정렬
sort -r names.txt
숫자 정렬
숫자 데이터를 정렬합니다.
# 숫자 정렬
touch numbers.txt
echo -e "10\n2\n1\n20" > numbers.txt
sort -n numbers.txt
# 결과:
# 1
# 2
# 10
# 20
# 역순 (큰 수부터)
sort -rn numbers.txt
특정 열 및 중복 제거
특정 열을 기준으로 정렬하고 중복을 제거합니다.
# CSV 파일을 2번째 열 기준 정렬
cut -d',' -f2 data.csv | sort
# 중복 제거
cat names.txt | sort -u
# 중복 제거 후 줄 수 세기
sort names.txt | uniq | wc -l
# 로그를 시간 기준 정렬
cat access.log | sort -k4