개요
`sort` 명령어는 텍스트 파일의 각 줄을 지정된 기준에 따라 재배열하여 표준 출력으로 내보냅니다. 기본적으로 사전순으로 정렬하지만, 다양한 옵션을 통해 숫자, 월, 특정 필드 등을 기준으로 정렬할 수 있습니다. 특히 `-n` 옵션은 숫자를 문자열이 아닌 실제 숫자 값으로 인식하여 올바르게 정렬하는 데 필수적입니다.
주요 기능
- 텍스트 파일의 줄 단위 정렬
- 사전순, 숫자순, 월별 등 다양한 정렬 기준 지원
- 중복 제거, 특정 필드 기준 정렬 기능 제공
- 표준 입력 및 파일 입력 모두 처리 가능
주요 옵션
`sort` 명령어는 강력한 정렬 기능을 제공하기 위해 다양한 옵션을 지원합니다. 다음은 주로 사용되는 옵션들입니다.
정렬 기준
출력 및 기타
생성된 명령어:
명령어를 조합해 보세요.
설명:
`sort` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
다음은 `sort` 명령어와 주요 옵션을 활용한 실제 사용 예시입니다.
기본 숫자 정렬
cat numbers.txt
# 출력 예시:
# 10
# 2
# 1
# 20
sort -n numbers.txt
# 예상 출력:
# 1
# 2
# 10
# 20
numbers.txt 파일의 내용을 숫자 기준으로 오름차순 정렬합니다.
역순 숫자 정렬
sort -nr numbers.txt
# 예상 출력:
# 20
# 10
# 2
# 1
numbers.txt 파일의 내용을 숫자 기준으로 내림차순 정렬합니다.
특정 필드(숫자) 기준 정렬
cat data.csv
# 출력 예시:
# apple,100,red
# banana,20,yellow
# cherry,50,red
sort -t, -nk2 data.csv
# 예상 출력:
# banana,20,yellow
# cherry,50,red
# apple,100,red
data.csv 파일의 두 번째 필드를 쉼표(,)로 구분하여 숫자 기준으로 정렬합니다.
중복 제거하며 숫자 정렬
cat numbers_dup.txt
# 출력 예시:
# 10
# 2
# 1
# 20
# 2
sort -nu numbers_dup.txt
# 예상 출력:
# 1
# 2
# 10
# 20
numbers_dup.txt 파일의 내용을 숫자 기준으로 정렬하고 중복되는 줄은 제거합니다.
정렬 결과를 파일로 저장
sort -n input.txt -o sorted_numbers.txt
cat sorted_numbers.txt
input.txt 파일의 내용을 숫자 기준으로 정렬한 후, 그 결과를 sorted_numbers.txt 파일에 저장합니다.
팁 & 주의사항
`sort` 명령어는 매우 강력하지만, 올바르게 사용하지 않으면 예상과 다른 결과를 얻을 수 있습니다. 다음 팁과 주의사항을 참고하여 효율적으로 활용하세요.
유용한 팁
- `sort`는 기본적으로 안정적인 정렬(stable sort)을 수행합니다. 즉, 동일한 키를 가진 레코드의 상대적 순서는 유지됩니다.
- `-k` 옵션 사용 시 필드 번호는 1부터 시작합니다.
- 대용량 파일 정렬 시 `-T` 옵션으로 임시 디렉토리를 지정하면 성능 향상에 도움이 될 수 있습니다.
- 파이프(`|`)와 함께 사용하여 다른 명령어의 출력을 정렬하는 데 자주 활용됩니다. (예: `ls -l | sort -nk5`)
주의사항
- `-n` 옵션 없이 숫자를 정렬하면 '10'이 '2'보다 먼저 오는 등 사전순으로 정렬되어 예상과 다른 결과가 나올 수 있습니다. 항상 숫자 정렬 시 `-n`을 사용하세요.
- 로케일(locale) 설정에 따라 정렬 순서가 달라질 수 있습니다. 일관된 결과를 위해 `LC_ALL=C sort`와 같이 로케일을 명시적으로 설정할 수 있습니다.