
sort -t' ' -k1,1n -k2,2n
이들 그리고 의 차이점은 무엇인가요 sort -t' ' -k1,2n
?
예를 들어주실 수 있나요?
난 노력 했어:
logan@logan-mainPC:~/my-test/learn-sort$ cat myage
my age 1
my age 100
my age 2
my age 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort -k2,3
my age 1
my age 100
my age 2
my age 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort -k2,2 -k3,3
my age 1
my age 100
my age 2
my age 200
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort -k2,2 -k3,3n
my age 1
my age 2
my age 100
my age 200
내 생각에 sort -k2,3
'age 1', 'age 100', ...을 정렬하고 sort -k2,2 -k3,3
'age', 'age',... 그런 다음 '1', '100', ...을 정렬합니다. 그들은 모두 열을 문자열로 취급하기 때문에 같은 결과를 낳습니다.
그러나 sort -k2,2 -k3,3n
열 3을 숫자로 처리하기 때문에 다른 결과가 생성됩니다.
하지만:
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort -k2,3n
my age 1
my age 100
my age 2
my age 200
이상해요. 그 이유를 알아낸 이유는 2열이 숫자가 아니기 때문입니다.
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort --debug -k2,3n
sort: using ‘en_AU.UTF-8’ sorting rules
sort: key 1 is numeric and spans multiple fields
my age 1
^ no match for key
________
my age 100
^ no match for key
__________
my age 2
^ no match for key
________
my age 200
^ no match for key
__________
감사해요.
답변1
플래그를 통해 무슨 일이 일어나고 있는지 알 수 있습니다 --debug
.
sort -k2,3
실제로 '1세', '100세',...를 정렬합니다.
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort --debug -t' ' -k2,3
sort: using ‘en_AU.UTF-8’ sorting rules
my age 1
_____
________
my age 100
_______
__________
my age 2
_____
________
my age 200
_______
__________
sort -k2,2 -k3,3
'나이'별로 정렬한 다음 '1', '100', ...
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort --debug -t' ' -k2,2 -k3,3
sort: using ‘en_AU.UTF-8’ sorting rules
my age 1
___
_
________
my age 100
___
___
__________
my age 2
___
_
________
my age 200
___
___
__________
마지막으로
logan@logan-mainPC:~/my-test/learn-sort$ cat myage | sort --debug -t' ' -k2,2 -k3,3n
sort: using ‘en_AU.UTF-8’ sorting rules
my age 1
___
_
________
my age 2
___
_
________
my age 100
___
___
__________
my age 200
___
___
__________
세 번째 열을 숫자로 처리합니다.