본문 바로가기

리눅스

sort 명령어

반응형

sort 명령어

sort 명령어는 파일의 내용을 행 단위로 정렬하는 데 사용됩니다. 기본적으로 알파벳 순서(사전 순서)로 정렬하며, 숫자, 날짜, 대소문자 등을 기준으로 정렬할 수 있는 다양한 옵션을 제공합니다.

기본 구문

sort [OPTION]... [FILE]...
  • 파일 : 정렬할 파일입니다. 생략하면 표준 입력(STDIN)에서 데이터를 읽습니다.

sort 주요 옵션

  • -r : 결과를 내림차순으로 정렬합니다.
  • -n : 숫자 값으로 정렬합니다.
  • -k N : 특정 열(필드) 기준으로 정렬합니다. (-k 2는 두 번째 열 기준)
  • -t <문자> : 필드 구분 문자를 지정합니다. 기본은 공백입니다.
  • -b : 각 행의 선행 공백을 무시합니다.
  • -u : 중복된 줄을 제거하여 출력합니다.
  • -f : 대소문자를 무시하고 정렬합니다.
  • -o <파일> : 정렬 결과를 지정한 파일에 저장합니다.
  • -M : 월 이름(Jan, Feb, ...)으로 정렬합니다.
  • --parallel=N : N개의 정렬 작업을 병렬로 실행합니다.

사용 예시

예제 데이터 생성

cat <<EOF | sudo tee -a file.txt
orange
apple
Banana
grape
apple
EOF

1. 기본 정렬

파일의 내용을 알파벳 순서로 정렬합니다.

sort file.txt
Banana
apple
apple
grape
orange

2. 내림차순 정렬

내용을 역순으로 정렬합니다.

sort -f file.txt
apple
apple
Banana
grape
orange

3. 숫자 기준 정렬

숫자 값 기준으로 정렬합니다.

sort -n numbers.txt

(예: 1, 10, 2 → 1, 2, 10)

4. 특정 열 기준으로 정렬

두 번째 열(필드)을 기준으로 정렬합니다.

  • 필드는 공백 또는 탭으로 구분됩니다. -t 옵션으로 구분 문자를 지정할 수 있습니다.
sort -k 2 file.txt
Banana
apple
apple
grape
orange
728x90

5. 필드 구분 문자 사용

콜론(:)을 필드 구분 문자로 사용하고 두 번째 필드 기준으로 정렬합니다.

sort -t ":" -k 2 file.txt
Banana
apple
apple
grape
orange

6. 중복 제거

정렬과 함께 중복된 줄을 제거합니다.

sort -u file.txt
Banana
apple
grape
orange

7. 대소문자 무시

대소문자를 구분하지 않고 정렬합니다.

sort -f file.txt
apple
apple
Banana
grape
orange

8. 월 이름 정렬

월 이름(Jan, Feb, ...) 순서로 정렬합니다.

sort -M months.txt

9. 출력을 파일로 저장

정렬된 결과를 sorted_file.txt에 저장합니다.

sort file.txt -o sorted_file.txt
$ cat sorted_file.txt
Banana
apple
apple
grape
orange

10. 선행 공백 무시

각 줄의 선행 공백을 무시하고 정렬합니다.

sort -b file.txt
Banana
apple
apple
grape
orange

정렬과 uniq 조합

sort와 uniq를 함께 사용하여 데이터를 정렬하고 중복을 제거할 수 있습니다.

sort file.txt | uniq
Banana
apple
grape
orange

 

sort는 데이터 처리와 정렬에서 매우 강력한 도구로 다양한 옵션을 활용하여 특정 요구 사항에 맞는 정렬 작업을 수행할 수 있습니다.

 

참고URL

- Ubuntu Manpage : noble sort

 

728x90
반응형