![유닉스에서 정렬 명령을 사용하는 방법을 설명해주세요](https://rvso.com/image/1497105/%EC%9C%A0%EB%8B%89%EC%8A%A4%EC%97%90%EC%84%9C%20%EC%A0%95%EB%A0%AC%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%84%20%EC%84%A4%EB%AA%85%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94.png)
저는 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
- 문자열 숫자 값에 따라 비교