ls -l
나는 디렉토리를 사용했고 정렬 순서가 공백과 밑줄을 무시한다는 사실에 놀랐습니다. 예를 들어,
$ echo $LANG
en_AU.UTF-8
$ ls -l
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:12 a_a
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a b
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a_c
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a d
$ LANG=en_AU ls -l
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a b
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a d
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:12 a_a
-rw-r--r-- 1 sparhawk sparhawk 0 Nov 20 21:13 a_c
내 기본 로케일에서는 공백과 밑줄을 서로 바꿔서 사용할 수 있으며 UTF-8이 없으면 공백이 밑줄 앞에 옵니다. en_US
및 에서도 비슷한 결과가 나타납니다 en_US.UTF-8
.
두 가지 질문이 있습니다.
- 내 설명이 맞나요? 서로 바꿔서 사용할 수 있나요?
- 내 로케일의 정렬된 목록이 있습니까? 밑줄 앞에 있는 문자를 찾고 싶습니다.
답변1
이것은 완전한 답변은 아니지만 일부 기사와 생각입니다.
여기에서 정렬 순서에 대한 몇 가지 참고 사항을 찾을 수 있습니다.http://www.gnu.org/software/coreutils/faq/#Sort-does-not-sort-in-normal-order_0021
로캘을 정의하는 방법에 대한 표준입니다.http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html#tag_07_03
다음은 유니코드 표준 및 데이터 정렬(정렬용)입니다.http://www.unicode.org/reports/tr10/. 나는 UTF-8 로케일의 데이터 정렬이 이런 방식으로 구현된다고 굳게 믿지는 않지만, 그렇게 주장하지는 않습니다.