정렬 명령줄 옵션을 처리하는 방법

정렬 명령줄 옵션을 처리하는 방법

이런 파일이 있어요

1.2.3.4
1.1.1.1
4.5.6.7
1.1.3.5

내가 줄 때

sort -t. -k3 inp3

1.1.1.1
1.2.3.4
1.1.3.5
4.5.6.7

내가 줄 때

sort -t. -k3,3 inp3
1.1.1.1
1.1.3.5
1.2.3.4
4.5.6.7

두 번째와 세 번째 열은 다릅니다. 이 k 옵션에 대해 많은 질문과 답변을 볼 수 있습니다. -k3을 주면 세 번째 열이

1.1.3.5
1.2.3.4

동일한 네 번째 열을 고려하십시오.

줄 때의 차이점은 무엇입니까?

sort -n -t. -k3 inp3

답변1

사용법은 -k다음과 같습니다.

    -k field_start[type][,field_end[type]]

마지막 필드를 생략하면 시작 필드의 모든 필드가 사용됩니다. 그럼에도 불구하고 보조 필드는 순서대로 연결을 끊는 데 사용됩니다.

따라서 이 작업을 수행하면 -k3필드 3과 4는 정렬에 사용되고 필드 4는 동순위 구분에 사용됩니다. 의 경우 -k3,3필드 3만 사용되며 다른 필드는 무시됩니다. 따라서 당신의 결론은 정확합니다.

-n자체를 지정한다는 것은 모든 필드가 숫자로 처리되고 그에 따라 정렬됨을 의미합니다. 알파벳 순서(보다 정확하게는 사전식)에서는 2마지막에 오고 102, 숫자 순서에서는 그 반대입니다. 보다맨페이지필드가 숫자로 처리된다는 것이 무엇을 의미하는지 이해합니다.

관련 정보