열의 일부를 기준으로 파일 정렬

열의 일부를 기준으로 파일 정렬

데이터 저장소의 공간 세부 정보가 포함된 파일이 하나 있습니다. 사용 가능한 여유 공간에 따라 정렬하고 싶습니다.

파일은 다음과 같습니다:

Name:VSP-01-32     Capacity:2047   Free Space:144
Name:VSP-02-33     Capacity:2047   Free Space:333
Name:VSP-03-34     Capacity:2047   Free Space:163
Name:VSP-04-35     Capacity:2047   Free Space:110
Name:VSP-05-36     Capacity:2047   Free Space:256
Name:VSP-06-37     Capacity:2047   Free Space:417

출력은 다음과 같습니다.

Name:VSP-06-37     Capacity:2047   Free Space:417
Name:VSP-02-33     Capacity:2047   Free Space:333
Name:VSP-05-36     Capacity:2047   Free Space:256
Name:VSP-03-34     Capacity:2047   Free Space:163
Name:VSP-01-32     Capacity:2047   Free Space:144
Name:VSP-04-35     Capacity:2047   Free Space:110

sed와 awk를 사용해 보았으나 설득력 있는 해결책을 찾지 못했습니다. 도와주세요.

답변1

(GNU) 정렬을 보면 man sort정렬할 필드를 지정할 수 있다는 것을 알 수 있습니다. 노력하다:

sort -n -t: -k4 -r

-n사전순이 아닌 숫자순으로 정렬하는 것을 의미합니다.

-t::필드를 구분(분할)하는 데 사용하도록 지시합니다 .

-k4네 번째 필드를 사용하라고 지시합니다.

-r결과를 반전시키라고 알려줍니다.


파일 이름에 가 있으면 작동하지 않는다는 주의 사항이 있습니다 :(필드/열이 이동함). 이것이 요구 사항인 경우 가장 쉬운 방법은 스크립트(예: Perl 또는 Python)입니다.

관련 정보