** 정렬 **이 모든 컴퓨터에서 동일하게 정렬되지 않는 이유는 무엇입니까?
문제
동일한 sort 명령을 동일한 입력으로 사용하면 다른 시스템에서 다른 결과가 생성됩니다.어떻게 수정하나요?
해결책
OS의 man-page X 말한다 : <인용구>
******* 경고 ******* 환경에서 지정한 로케일은 정렬 순서에 영향을줍니다. LC_ALL= C를 설정하여 네이티브 바이트 값을 사용하는 전통적인 정렬 순서
설명 할 수 있습니다.
일부 시스템에서 로케일을 지원하지 않는 경우 해당 로케일 (C)로 기본 설정되므로 해당 로케일에서 설정할 필요가 없습니다. 로케일을 지원하고 동일한 동작을 원하는 경우 해당 시스템에서 LC_ALL=C
를 설정하십시오. 이것이 제가 아는 한 많은 시스템이 동일한 방식으로 수행하는 방법입니다.
로케일이없는 시스템이 없다면 그들이 로케일을 공유하는 것만으로도 충분할 것입니다.
자세한 표준 정보는 locale의 The Single UNIX ® Specification, 버전 2 설명을 참조하십시오. , 환경 변수 , setlocale () 및 sort (1) 유틸리티.
다른 팁
다음은 로케일 차이의 결과 일 수 있습니다. 라코 디스
LC_ALL 환경 변수를 동일한 값으로 설정하면 문제가 해결됩니다.
이는 로케일 환경 변수 .sort
는 이러한 설정을 사용하여 문자열을 비교하는 방법을 결정합니다.sort
를 호출하기 전에 이러한 환경 변수를 원하는 방식으로 설정하면 특정 방식으로 작동하도록 강제 할 수 있습니다.
sort
에 대해 알고 싶었던 것 이상을 보려면 Single Unix Specification v3 sort
의 사양 >.설명
<인용구>
비교 [...]는 현재 로케일의 조합 순서를 사용하여 수행됩니다.
IOW, sort
정렬 방식은 스크립트가 실행되는 환경의 로케일 (언어) 설정에 따라 다릅니다.