사용자 정의 데이터 정렬 목록과 함께 유닉스 명령 "sort"를 사용하는 방법은 무엇입니까?

사용자 정의 데이터 정렬 목록과 함께 유닉스 명령 "sort"를 사용하는 방법은 무엇입니까?

배경:

  1. GB2312, GB18030-2005, GBK, Big5, CNS-11643의 중국어 표의 문자 정렬/인코딩 순서는 다르며 유니코드(UTF-8 포함)의 정렬 방법과도 다릅니다.

  2. macOS 12부터 sortmacOS에 포함된 명령은 올바르게 지정되었더라도 GB18030/CNS-11643/Big5의 인코딩 시퀀스를 고려하지 않습니다.LC_COLLATE=zh_CN.GB18030 (or zh_TW.Big5, etc.)

최소 작업 예: macOS Automator 애플리케이션에 이 셸 명령을 추가하고 콘텐츠를 다음으로 보냅니다 stdin.

iconv -t gb18030 | LC_COLLATE=zh_CN.GB18030 sort -uf | iconv -f gb18030

오토마타 명령

(macOS 시스템 환경설정을 통해 이 Automator 서비스에 단축키를 바인딩할 수 있습니다.)

그런 다음 BBEdit, TextEdit 또는 CotEdit에서 텍스트 문서를 만들고 macOS "서비스"를 지원하는 한 원하는 응용 프로그램을 만들고 다음 콘텐츠를 복사하세요.


그런 다음 이 두 줄을 선택하고 위에서 만든 서비스를 실행합니다.

예상되는 결과: GB18030의 규정에 따르면 "一"은 "䴘"보다 상위에 위치합니다.

실제 결과: 잘못된 데이터 오류입니다.


이 기능 개선 요청을 Apple에 보내겠지만, 이 피드백이 받아들여지고 처리될지는 누구도 보장할 수 없습니다. 또한 명령이 sort예상대로 작동 하도록 정렬된 목록을 사용자 정의할 수 있는 방법이 있습니까 ?

관련 정보