"정렬" 유틸리티는 어떻게 작동하나요? (내가 생각하는 대로 작동하지 않는 이유는 무엇입니까?)

"정렬" 유틸리티는 어떻게 작동하나요? (내가 생각하는 대로 작동하지 않는 이유는 무엇입니까?)

텍스트 파일이 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다음 알파벳 문자 의 경우는 bfrom bar입니다.

관련 정보