linux - Sort order settings for LC_COLLATE to get 'a' < 'A' < 'b' < 'B' -


is there setting lc_collate sort order: 'a' < 'a' < 'b' < 'b'? (see output @ end of post). note: 'a' < 'a' < 'b' < 'b' okay. here's example illustrate problem.

first, create bunch of empty files in temporary folder follows:

$ mkdir temp $ cd temp $ cat ../echo-scr  echo > a-a echo > a-b echo > a-a echo > a-b echo > b-a echo > b-b echo > b-a echo > b-b echo > aa-a echo > aa-a echo > aa-a echo > aa-a echo > aa-a echo > aa-a echo > aa-a echo > aa-a $ bash ../echo-scr  

with setting "lc_collate=en_us.utf8", problem files starting 'a' split 2 groups ('a' < 'a' not respected):

$ export lc_collate=en_us.utf8; /bin/ls -1 a-a a-a aa-a aa-a aa-a aa-a aa-a aa-a aa-a aa-a a-b a-b b-a b-a b-b b-b 

apparently "lc_collate=c" keeps files starting 'a' together, creates problem--now 'a' < 'b' < 'a' < 'b', want 'a' < 'a' < 'b' < 'b' (the following sort order fine: 'a' < 'a' < 'b' < 'b').

$ export lc_collate=c; /bin/ls -1 aa-a aa-a aa-a aa-a b-a b-b b-a b-b a-a a-b a-a a-b aa-a aa-a aa-a aa-a 

so question is: value of lc_collate should use following sort order - 'a' < 'a' < 'b' < 'b' (example output below)?

a-a a-a a-b a-b aa-a aa-a aa-a aa-a aa-a aa-a aa-a aa-a b-a b-a b-b b-b