sort 개요
`sort` 명령어는 기본적으로 각 줄을 전체적으로 비교하여 ASCII 문자 순서(사전순)로 정렬한 후 표준 출력으로 결과를 보냅니다. 원본 파일은 변경되지 않으며, 변경된 내용을 파일에 저장하려면 리다이렉션(`>`)을 사용해야 합니다.
sort의 주요 역할
`sort` 명령어는 주로 다음과 같은 목적으로 사용됩니다:
주요 활용 분야
- 데이터 정렬: 로그 파일, 데이터 목록, 사용자 목록 등을 특정 기준으로 정렬하여 가독성을 높입니다.
- 중복 제거: 정렬된 데이터를 기반으로 중복된 줄을 쉽게 제거할 수 있습니다. (`uniq`와 함께 사용)
- 보고서 생성: 특정 필드를 기준으로 데이터를 정렬하여 분석하기 쉬운 형태로 만듭니다.
- 파일 비교: 두 파일의 내용을 정렬하여 비교하기 전에 정규화하는 데 사용될 수 있습니다.
정렬 방식의 기본 원리
`sort`는 기본적으로 각 줄의 첫 문자부터 시작하여 문자 코드 값(ASCII 값)을 기준으로 비교합니다. 숫자의 경우에도 문자열로 취급하기 때문에 '10'이 '2'보다 먼저 오는 등의 예상치 못한 결과가 나올 수 있습니다. 이를 방지하려면 숫자 정렬 옵션을 사용해야 합니다.
주요 sort 명령어 옵션
`sort` 명령어는 다양한 옵션을 제공하여 정렬 기준, 순서, 중복 처리 등을 세밀하게 제어할 수 있습니다.
1. 정렬 기준 및 순서
2. 중복 및 공백 처리 옵션
3. 출력 및 구분자 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`sort` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
`sort` 명령어의 다양한 활용 예시들을 통해 텍스트 데이터를 효율적으로 정렬하고 분석하는 방법을 익혀보세요.
파일 내용 기본 정렬
echo -e "Charlie\nAlice\nBob" > names.txt
sort names.txt
`names.txt` 파일의 줄들을 알파벳 순서(오름차순)로 정렬하여 출력합니다.
파일 내용 역순(내림차순) 정렬
echo -e "10\n2\n100" > numbers.txt
sort -r numbers.txt
`numbers.txt` 파일의 숫자들을 문자열로 간주하여 역순으로 정렬합니다.
숫자 값 기준으로 정렬
echo -e "20 Bob\n10 Alice\n100 Charlie" > scores.txt
sort -n scores.txt
`scores.txt` 파일의 점수(첫 번째 필드)를 실제 숫자 값 기준으로 오름차순 정렬합니다.
CSV 파일의 두 번째 컬럼(이름) 기준으로 정렬
echo -e "1,Bob,Seoul\n3,Alice,Busan\n2,Charlie,Jeju" > users.csv
sort -t',' -k 2 users.csv
쉼표(`,`)로 구분된 `users.csv` 파일에서 두 번째 필드(이름)를 기준으로 정렬합니다.
정렬 후 중복 줄 제거
echo -e "apple\nbanana\napple\ncherry" > duplicates.txt
sort -u duplicates.txt
`duplicates.txt` 파일의 내용을 정렬한 후, 중복되는 줄을 하나만 남기고 제거합니다.
정렬 결과를 새 파일에 저장
echo -e "Zebra\nCat\nDog" > unsorted.txt
sort unsorted.txt -o sorted.txt
`unsorted.txt` 파일의 내용을 정렬한 후, 그 결과를 `sorted.txt` 파일에 저장합니다. 원본 파일은 변경되지 않습니다.
인간 가독형 크기로 정렬
echo -e "10K file1\n2M file2\n500K file3\n1G file4" > sizes.txt
sort -h sizes.txt
파일 크기 목록을 인간 가독형 단위(K, M, G)를 고려하여 정렬합니다. `du -h` 등의 결과물을 정렬할 때 유용합니다.