유닉스에서 정렬 명령을 사용하는 방법을 설명해주세요

유닉스에서 정렬 명령을 사용하는 방법을 설명해주세요

저는 UNIX를 처음 사용합니다. 명령어를 설명해주세요 sort. 정렬 필드 구분 기호와 관련된 의문이 있습니다. 예: sort -k2, 2 filename, 명확하게 설명해주세요. 작은 예를 들어주세요.

답변1

sort -k2, 2 filename옵션 에 공백 구분 기호가 없어야 합니다 -k2,2. 에 구문 오류가 있습니다. 또한 사전 순서 또는 숫자 정렬 옵션을 명령에 추가하여 혼란 및/또는 오류(정렬 중인 파일의 내용에 따라 다름)의 원인을 제거하여 작업 방식을 명시적으로 만듭니다. 정렬됩니다.

cat unsorted-file.txt # original unsorted file
9 8 7
6 55 44
3 2 1

sort -k1 -n unsorted-file.txt # example 1
3 2 1
6 55 44
9 8 7

sort -k3 -n unsorted-file.txt # example 2
3 2 1
9 8 7
6 55 44

sort -k1,3 -n unsorted-file.txt # example 3
3 2 1
6 55 44
9 8 7

sort -k2,3 -n unsorted-file.txt # example 4
3 2 1
9 8 7
6 55 44

설명

기본적으로 필드 구분 기호는 공백이 아닌 공백으로 전환됩니다.
KEYDEF는 -k시작 및 중지 위치에 대한 F[.C][OPTS][,F[.C][OPTS]]입니다. 여기서 F는 필드 번호이고 C는 필드의 문자 위치입니다. 둘 다 원점 1이고 정지 위치는 기본적으로 선 끝으로 설정됩니다.
-k1- 첫 번째 필드
-k3- 세 번째 필드
-k1,3- 첫 번째 필드 시작, 세 번째 필드 중지
-k2,3- 두 번째 필드 시작, 세 번째 필드 중지
-n- 문자열 숫자 값에 따라 비교

관련 정보