Nie znam żadnych ustawień narodowych, które domyślnie sortują w tej kolejności. Rozwiązaniem jest utworzenie niestandardowych ustawień regionalnych z niestandardowym porządkiem sortowania. Jeśli ktoś, cztery lata później, chce sortować w niestandardowy sposób, oto sztuczka.
Zdecydowana większość ustawień narodowych nie określa własnego porządku sortowania, ale raczej kopiuje zdefiniowany porządek sortowania, /usr/share/i18n/locales/iso14651_t1_commonabyś to właśnie chciał edytować. Zamiast zmieniać porządek sortowania dla prawie wszystkich ustawień regionalnych poprzez modyfikację oryginału iso14651_t1_common, sugeruję, aby wykonać kopię. Szczegółowe informacje o tym, jak działa porządek sortowania i jak utworzyć niestandardowe ustawienia narodowe w $HOMEkatalogu bez dostępu użytkownika root, znajdują się w tej odpowiedzi na podobne pytanie .
Zobacz, jak ai Asą uporządkowane na podstawie ich wpisów w iso14651_t1_common:
<U0061> <a>;<BAS>;<MIN>;IGNORE # 198 a
<U0041> <a>;<BAS>;<CAP>;IGNORE # 517 A
bi Bsą podobne:
<U0062> <b>;<BAS>;<MIN>;IGNORE # 233 b
<U0042> <b>;<BAS>;<CAP>;IGNORE # 550 B
Widzimy, że na pierwszym przejeździe, zarówno ai Amają symbol zestawiania <a>, podczas gdy zarówno bi Bmają symbol zestawiania <b>. Ponieważ <a>pojawia się przed <b>w iso14651_t1_common, ai Asą związani przed bi B. Drugi przebieg nie zrywa więzi, ponieważ wszystkie cztery znaki mają symbol zestawiania <BAS>, ale podczas trzeciego przejścia remisy są rozwiązywane, ponieważ symbol zestawienia małych liter <MIN>pojawia się w linii 3467, przed symbolem zestawiania wielkich liter <CAP>(linia 3488) . Zatem porządek kończy jako a, A, b, B.
Zamiana pierwszego i trzeciego zestawionego symbolu posortowałaby litery najpierw według wielkości liter (najpierw niższa niż górna), następnie według akcentu ( <BAS>czyli bez akcentu), a następnie według kolejności alfabetycznej. Jednakże , zarówno <MIN>i <CAP>przyjść przed cyfr, więc byłoby to mieć niepożądany wpływ wprowadzenie cyfry po literami.
Najłatwiejszym sposobem, aby cyfry były pierwsze, a wszystkie małe litery pojawiały się przed wszystkimi dużymi literami, jest wymuszenie wiązania wszystkich liter podczas pierwszego porównania, ustawiając je wszystkie na równe <a>. Aby upewnić się, że sortują alfabetycznie według wielkości liter, zmień ostatni symbol zestawiania z IGNOREna bieżący pierwszy symbol zestawiania. Zgodnie z tym wzorem astałoby się:
<U0061> <a>;<BAS>;<MIN>;<a> # 198 a
A stanie się:
<U0041> <a>;<BAS>;<CAP>;<a> # 517 A
b stanie się:
<U0062> <a>;<BAS>;<MIN>;<b> # 233 b
B stanie się:
<U0042> <a>;<BAS>;<CAP>;<b> # 550 B
i tak dalej dla pozostałych liter.
Po utworzeniu dostosowanej wersji iso14651_t1_commonpostępuj zgodnie z instrukcjami w odpowiedzi powyżej, aby skompilować niestandardowe ustawienia regionalne.