1 |
Am 27.07.2016 um 17:33 schrieb Bertram Scharpf: |
2 |
> Hi, |
3 |
> |
4 |
> bsch@host ~ % mkdir showsort |
5 |
> user@host ~ % cd showsort |
6 |
> user@host ~/showsort % touch .A .Z .a .z A Z a z |
7 |
> user@host ~/showsort % set | grep -a '^\(LANG\|LC_\)' |
8 |
> LANG=de_DE.utf8 |
9 |
> LC_ALL=de_DE.utf8 |
10 |
> LC_COLLATE=C |
11 |
|
12 |
> |
13 |
> Why doesn't ls obey LC_COLLATE=C and how can I fix this? |
14 |
> |
15 |
|
16 |
Look at the description of LC_ALL: |
17 |
|
18 |
LC_ALL If set to a non-empty string value, override the values of |
19 |
all the other internationalization variables. |
20 |
|
21 |
Then do only set LANG and LC_COLLATE and not (!) LC_ALL. |
22 |
|
23 |
You can run the tool "locale". It will show the effective values used |
24 |
for each locale category. |
25 |
|
26 |
For your settings: |
27 |
$ LANG=de_DE.utf8 LC_ALL=de_DE.utf8 LC_COLLATE=C locale |
28 |
LANG=de_DE.utf8 |
29 |
LC_CTYPE="de_DE.utf8" |
30 |
LC_NUMERIC="de_DE.utf8" |
31 |
LC_TIME="de_DE.utf8" |
32 |
LC_COLLATE="de_DE.utf8" |
33 |
LC_MONETARY="de_DE.utf8" |
34 |
LC_MESSAGES="de_DE.utf8" |
35 |
LC_PAPER="de_DE.utf8" |
36 |
LC_NAME="de_DE.utf8" |
37 |
LC_ADDRESS="de_DE.utf8" |
38 |
LC_TELEPHONE="de_DE.utf8" |
39 |
LC_MEASUREMENT="de_DE.utf8" |
40 |
LC_IDENTIFICATION="de_DE.utf8" |
41 |
LC_ALL=de_DE.utf8 |
42 |
|
43 |
When not setting LC_ALL: |
44 |
$ LANG=de_DE.utf8 LC_COLLATE=C locale |
45 |
LANG=de_DE.utf8 |
46 |
LC_CTYPE="de_DE.utf8" |
47 |
LC_NUMERIC="de_DE.utf8" |
48 |
LC_TIME="de_DE.utf8" |
49 |
LC_COLLATE=C |
50 |
LC_MONETARY="de_DE.utf8" |
51 |
LC_MESSAGES="de_DE.utf8" |
52 |
LC_PAPER="de_DE.utf8" |
53 |
LC_NAME="de_DE.utf8" |
54 |
LC_ADDRESS="de_DE.utf8" |
55 |
LC_TELEPHONE="de_DE.utf8" |
56 |
LC_MEASUREMENT="de_DE.utf8" |
57 |
LC_IDENTIFICATION="de_DE.utf8" |
58 |
LC_ALL= |
59 |
|
60 |
In scripts I normally use LC_ALL=C sort. |
61 |
|
62 |
Regards |
63 |
Matthias |