텍스트 파일이 2개 있습니다.
$ cat /tmp/test1
"AAP" bar
"AEM" bar
"AA" bar
"AEO" bar
"A" bar
$ cat /tmp/test2
"AEM" foo
"AAP" foo
"A" foo
"AEO" foo
"AA" foo
정렬하고 싶어요
$ sort /tmp/test1
"AA" bar
"AAP" bar
"A" bar <-- "A" is in position 3
"AEM" bar
"AEO" bar
$ sort /tmp/test2
"AA" foo
"AAP" foo
"AEM" foo
"AEO" foo
"A" foo <-- "A" is in position 5
왜 "A"
결국위치 3/tmp/test1
그리고위치 5/tmp/test2
?
내 기대는 그거야열당 각 문자비교됩니다.
이처럼 3열을 비교할 때 , 'A'
, 'E'
가 '"'
서로 비교되며 이것이 이 테스트 데이터의 최종 정렬 순서를 결정하는 최종 결정 요인이 됩니다.
sort
분명히 내 기대는 틀렸는데, 내가 예상한 방식이 아니라면 어떻게 작동합니까 ?
sort
원하는 정렬 순서를 얻는 데 사용할 수 있는 명령줄 옵션이나 다른 유틸리티가 있습니까 ?
답변1
데이터 정렬 로캘을 변경해야 합니다. 설명하는 동작은 en_US
다른 많은 로케일에서도 일반적입니다. 다음을 사용하여 수정하세요.
LC_ALL=C sort /tmp/test1
이 답변에 대한 자세한 내용:https://stackoverflow.com/questions/6531674/linux-sort-unexpected-output
답변2
아마도 알파벳 문자만 볼 수 있을까요? 따라서 A
다음 알파벳 문자 의 경우는 b
from bar입니다.