Linux Sort 명령의 사용

정렬 할 항목은 어떤 방법으로 구분되어야합니다.

Linux 텍스트 파일의 데이터는 각 요소가 어떤 식 으로든 구분되는 한 sort 명령으로 정렬 될 수 있습니다. 종종 쉼표는 구분 된 정보의 구분 기호로 사용됩니다.

정렬을위한 기본 규칙

sort 명령은 텍스트 파일의 행을 숫자순으로 사전 순으로 정렬합니다. sort 명령의 기본 규칙은 다음과 같습니다.

텍스트 파일 정렬

구분 된 Linux 파일에서 행을 정렬하려면 sort 명령을 다음 과 같이 사용하십시오.

$ sort -k2 test.txt

두 번째 열에서 시작하는 문자에 따라 "test.txt"파일을 정렬합니다 (k2는 두 번째 열을 나타냄). 입력 파일 내용을 다음과 같이 가정합니다.

1, 저스틴 팀버레이크, 타이틀 545, 가격 $ 7.30 2, 테일러 스위프트, 타이틀 723, 가격 $ 7.90 3, 믹 재거, 타이틀 610, 가격 $ 7.90 4, 레이디 가가, 타이틀 118, 가격 $ 7.30 5, 조니 캐쉬, 타이틀 482, 가격 $ 6.50 6, 엘비스 프레슬리, 타이틀 335, 가격 $ 7.30 7, 존 레넌, 타이틀 271, 가격 $ 7.90 8, 마이클 잭슨, 타이틀 373, 가격 $ 5.50

이 예제의 두 번째 열은 이름과 성을 포함하고 있으므로 정렬 된 출력은 두 번째 열 (Elvis, John, Johnny, Justin, Lady, Michael, Mick 및 Taylor)의 각 개인의 이름 첫 글자로 정렬됩니다. , 아래 그림과 같이:

6, Elvis Presley, Title 335, Price $ 6.30 7, 존 레논, 타이틀 271, 가격 $ 7.90 5, 조니 캐쉬, 타이틀 482, 가격 $ 6.50 1, 저스틴 팀버레이크, 타이틀 545, 가격 $ 6.30 4, 레이디 가가, 타이틀 118, 가격 $ 6.30 8, 마이클 잭슨, 타이틀 373, 가격 $ 5.50 3, 믹 재거, 타이틀 610, 가격 $ 7.90 2, 테일러 스위프트, 타이틀 723, 가격 $ 7.90

-k3을 사용하여 파일을 정렬하는 경우 (3 열에서 시작하는 행 내용 (제목 번호 열) 사용) 출력은 다음과 같습니다.

4, 레이디 가가, 타이틀 118, 가격 $ 6.30 7, 존 레논, 타이틀 271, 가격 $ 7.90 6, 엘비스 프레슬리, 타이틀 335, 가격 $ 6.30 8 마이클 잭슨, 타이틀 373, 가격 $ 5.50 5, 조니 캐쉬, 타이틀 482, 가격 $ 6.50 1, 저스틴 팀버레이크, 타이틀 545, 가격 $ 6.30 3, 믹 재거, 타이틀 610, 가격 $ 7.90 2, Taylor Swift, Title 723, Price $ 7.90

$ sort -k4 test.txt

가격별로 정렬 된 목록을 생성합니다.

8, 마이클 잭슨, 타이틀 373, 가격 $ 5.50 1, 저스틴 팀버레이크, 타이틀 545, 가격 $ 6.30 4, 레이디 가가, 타이틀 118, 가격 $ 6.30 6, 엘비스 프레슬리, 타이틀 335, 가격 $ 6.30 5, 조니 캐쉬, 타이틀 482, 가격 $ 6.50 2, Taylor Swift, Title 723, Price $ 7.90 3, Mick Jagger, Title 610, Price $ 7.90 7, John Lennon, Title 271, Price $ 7.90

정렬 반전

-r 옵션은 정렬을 취소합니다. 예를 들어 위의 결과를 사용하면 다음과 같습니다.

$ sort -k4 -r test.txt

수율 :

7, 존 레논, 타이틀 271, 가격 $ 7.90 3, 믹 재거, 타이틀 610, 가격 $ 7.90 2, 테일러 스위프트, 타이틀 723, 가격 $ 7.90 5, 조니 캐쉬, 타이틀 482, 가격 $ 6.50 6, 엘비스 프레슬리, 타이틀 335, 가격 $ 6.30 4, 레이디 가가, 타이틀 118, 가격 $ 6.30 1, 저스틴 팀버레이크, 타이틀 545, 가격 $ 6.30 8, 마이클 잭슨, 타이틀 373, 가격 $ 5.50

정렬 된 파일 저장

파일을 정렬해도 저장되지 않습니다. 정렬 된 목록을 파일에 저장하려면 다음과 같이 리디렉션 연산자를 사용합니다.

sort -k4 -r test.txt> test_new.txt

여기서 "test_new.txt"는 새 파일입니다.

스트림 출력 정렬하기

파이프 연산자와 같은 스트림의 출력에 sort 명령을 적용 할 수도 있습니다.

$ ls -al | 정렬 -r -n -k5

이 명령은 ls 명령에 의해 생성 된 파일 목록의 출력을 가장 큰 파일부터 파일 크기별로 정렬합니다. -n 연산자는 알파벳이 아닌 숫자 정렬을 지정합니다.