Linux를 사용하는 파일에서 데이터를 정렬하는 방법

소개

이 가이드에서는 구분 된 파일과 다른 명령의 출력에서 ​​데이터를 정렬하는 방법을 설명합니다.

이 작업을 수행하는 데 사용하는 명령을 "정렬"이라고 배우면 놀라지 않을 것입니다. sort 명령의 주요 스위치는 모두이 기사에서 제공됩니다.

샘플 데이터

파일의 데이터는 어떤 식 으로든 구분되는 한 정렬 될 수 있습니다.

예를 들어 작년 스코틀랜드 프리미어 리그에서 최종 리그 테이블을 가져 와서 "spl"라는 파일에 데이터를 저장해 봅시다.

한 클럽과 각 클럽의 데이터를 쉼표로 구분하여 다음과 같이 데이터 파일을 만들 수 있습니다.

득점 득점 목표 대비 전철기
켈트 말 93 31 86
애버딘 62 48 71
하트 59 40 65
세인트 존스톤 58 55 56
마더 웰 47 63 50 개
로스 카운티 55 61 48
인버네스 54 48 52
던디 53 57 번 48
파틱 41 50 개 46
해밀턴 42 63 43
킬 마녹 41 64 개 36
던디 유나이티드 45 70 28

파일에서 데이터를 정렬하는 방법

그 테이블에서 셀틱이 리그 우승을하고 던디 유나이티드가 최후에 왔다는 것을 알 수 있습니다. 던디 유나이티드 팬이라면 자신의 기분을 좋게하고 싶을 수도 있습니다. 그리고 득점 한 골을 분류하면됩니다.

이렇게하려면 다음 명령을 실행하십시오.

sort -k2 -t, spl

이번에 주문은 다음과 같습니다 :

결과가이 순서대로되는 이유는 열 2가 목표 점수 열이고 점수가 가장 낮은 점수에서 가장 높은 점수로 바뀌기 때문입니다.

-k 스위치를 사용하면 정렬 기준 열을 선택할 수 있으며 -t 스위치를 사용하면 구분 기호를 선택할 수 있습니다.

던디 유나이티드 팬들은 다음과 같은 명령을 사용하여 4 열별로 정렬 할 수 있습니다.

sort -k4 -t, spl

현재 던디 유나이티드는 정상에 있고 셀틱은 맨 아래에 있습니다.

물론 이것은 셀틱과 던디 팬 모두를 매우 불행하게 만들 것입니다. 일을 올바르게하려면 다음 스위치를 사용하여 역순으로 정렬 할 수 있습니다.

sort -k4 -t, -r spl

다소 기괴한 스위치를 사용하면 무작위로 정렬 할 수 있으므로 실제로는 데이터 행을 뒤죽박죽으로 처리 할 수 ​​있습니다.

다음 명령을 사용하여이 작업을 수행 할 수 있습니다.

sort -k4 -t, -R spl

-r 스위치와 -R 스위치가 섞여 있으면 실제 문제가 발생할 수 있습니다.

sort 명령은 날짜를 월 순서로 정렬 할 수도 있습니다. 다음 표를 보시려면 :

사용 된 데이터
일월 4 세대
이월 3000K
행진 6000K
4 월 100M
할 수있다 5000M
유월 200K
칠월 4000K
팔월 2500K
구월 3000K
십월 1000K
십일월 3G
12 월 2 세대

위의 표는 모바일 장치에서 사용 된 데이터의 양과 월을 나타냅니다.

다음 명령을 사용하여 알파벳순으로 날짜를 정렬 할 수 있습니다.

sort -k1 -t, datausedlist

다음 명령을 사용하여 월별로 정렬 할 수도 있습니다.

sort -k1 -t, -M datausedlist

이제 분명히 위의 표는 이미 월 순서로 보여 주지만리스트가 무작위로 채워지면 간단한 정렬 방법이됩니다.

두 번째 열을 보면 모든 값이 사람이 읽을 수있는 형식으로되어있어 정렬하기가 쉽지는 않지만 sort 명령은 다음 명령을 사용하여 데이터 사용 열을 정렬 할 수 있음을 알 수 있습니다.

sort -k2 -t, -h datausedlist

다른 명령에서 전달 된 데이터를 정렬하는 방법

파일의 데이터 정렬이 유용하지만 sort 명령을 사용하여 다른 명령의 출력을 정렬 할 수도 있습니다.

예를 들어 , ls 명령을보십시오 :

ls -lt

위의 명령은 각 파일을 열에 표시된 다음 필드와 함께 데이터 행으로 반환합니다.

다음 명령을 실행하여 파일 크기별로 목록을 정렬 할 수 있습니다.

ls -lt | 정렬 -k5

역순으로 결과를 얻으려면 다음 명령을 사용하십시오 :

ls -lt | sort -k5 -r

sort 명령은 시스템에서 실행중인 프로세스를 나열 하는 ps 명령 과 함께 사용할 수도 있습니다.

예를 들어 시스템에서 다음 ps 명령을 실행하십시오.

ps -eF

위의 명령은 현재 시스템에서 실행중인 프로세스에 대한 많은 정보를 반환합니다.

이러한 열 중 하나가 크기이며 어떤 프로세스가 가장 큰지를 알고 싶을 수 있습니다.

이 데이터를 크기별로 정렬하려면 다음 명령을 사용하십시오.

ps -eF | 정렬 -k5

개요

sort 명령은별로 없지만 다른 명령의 출력을 의미있는 순서로 정렬 할 때 특히 유용합니다. 명령에 고유 한 정렬 스위치가없는 경우 특히 유용합니다.

자세한 내용은 sort 명령의 매뉴얼 페이지를 참조하십시오.