숫자 정렬 및 필드 구분 기호
많은 실제 시나리오에서 숫자 값 또는 여러 필드가 있는 데이터가 포함된 파일을 정렬해야 할 수 있습니다. sort 명령어는 이러한 시나리오에 대한 옵션을 제공합니다.
숫자 정렬
숫자 정렬을 탐색하기 위해 숫자 값이 있는 파일을 만들어 보겠습니다:
numbers.txt라는 파일을 만듭니다:
cd ~/project
echo -e "10\n5\n100\n20\n1\n50" > numbers.txt
- 파일 내용을 봅니다:
cat numbers.txt
다음과 같이 표시됩니다:
10
5
100
20
1
50
- 이 파일에 기본
sort 명령어를 사용하면:
sort numbers.txt
출력은 다음과 같습니다:
1
10
100
20
5
50
sort는 기본적으로 각 줄을 텍스트로 처리하기 때문에 이것이 올바른 숫자 순서가 아님을 확인하십시오. 문자열 "100"은 사전식 (사전) 순서에서 "20" 앞에 옵니다.
- 숫자별로 정렬하려면
-n 옵션을 사용합니다:
sort -n numbers.txt
이제 올바른 숫자 순서를 볼 수 있습니다:
1
5
10
20
50
100
여러 필드가 있는 파일 정렬
종종 파일에는 쉼표, 탭 또는 공백과 같은 구분자로 구분된 여러 필드가 포함되어 있습니다. sort 명령어를 사용하면 정렬할 필드를 지정할 수 있습니다.
- 샘플 데이터가 있는 CSV(Comma-Separated Values, 쉼표로 구분된 값) 파일을 만듭니다:
cd ~/project
echo -e "Name,Age,City\nAlice,28,New York\nBob,35,Los Angeles\nCarol,22,Chicago\nDavid,31,Boston\nEve,26,Seattle" > people.csv
- 파일 내용을 봅니다:
cat people.csv
다음과 같이 표시됩니다:
Name,Age,City
Alice,28,New York
Bob,35,Los Angeles
Carol,22,Chicago
David,31,Boston
Eve,26,Seattle
- 이 파일을 두 번째 필드 (Age) 별로 정렬하려면
-t 옵션을 사용하여 필드 구분자 (이 경우 쉼표) 를 지정하고 -k 옵션을 사용하여 필드 번호를 지정합니다:
sort -t, -k2,2n people.csv
-t, 옵션은 필드 구분자를 쉼표로 설정하고 -k2,2n은 sort에 두 번째 필드를 정렬에 사용하고 이를 숫자 값으로 처리하도록 지시합니다.
출력은 다음과 같아야 합니다:
Name,Age,City
Carol,22,Chicago
Eve,26,Seattle
Alice,28,New York
David,31,Boston
Bob,35,Los Angeles
- 세 번째 필드 (City) 를 알파벳순으로 정렬할 수도 있습니다:
sort -t, -k3,3 people.csv
출력은 다음과 같습니다:
Name,Age,City
David,31,Boston
Carol,22,Chicago
Bob,35,Los Angeles
Alice,28,New York
Eve,26,Seattle
이러한 옵션을 사용하면 필요에 따라 다양한 데이터 형식의 파일을 효과적으로 정렬할 수 있습니다.