** 정렬 **이 모든 컴퓨터에서 동일하게 정렬되지 않는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/28881

  •  09-06-2019
  •  | 
  •  

문제

동일한 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 정렬 방식은 스크립트가 실행되는 환경의 로케일 (언어) 설정에 따라 다릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top