Test case: # locale-gen et_EE.UTF-8 # echo _abcdefghijklmnopqrstuvwxyz_ | LANG=et_EE.UTF-8 LANGUAGE= LC_ALL= sed 's/[a-z]//g' _tuvwxy_ # echo _abcdefghijklmnopqrstuvwxyz_ | LANG=et_EE.UTF-8 LANGUAGE= LC_ALL= sed 's/[[:alpha:]]//g' __
I.e. the locale needs to be generated before it's functional, and LANGUAGE and LC_ALL need to be unset in order for LANGUAGE to take effect.
Note that `tr` seems unaffected, maybe its developers are automatically replacing [a-z] with [[:alpha:]] internally.
I think that any occurrences of [a-z] in the code should be fixed whether we also decide to use LANG=C.UTF-8 or not.
Test case: opqrstuvwxyz_ | LANG=et_EE.UTF-8 LANGUAGE= LC_ALL= sed 's/[a-z]//g' opqrstuvwxyz_ | LANG=et_EE.UTF-8 LANGUAGE= LC_ALL= sed 's/[[:alpha:]]//g'
# locale-gen et_EE.UTF-8
# echo _abcdefghijklmn
_tuvwxy_
# echo _abcdefghijklmn
__
I.e. the locale needs to be generated before it's functional,
and LANGUAGE and LC_ALL need to be unset in order for LANGUAGE to take effect.
Note that `tr` seems unaffected, maybe its developers are automatically replacing [a-z] with [[:alpha:]] internally.
I think that any occurrences of [a-z] in the code should be fixed whether we also decide to use LANG=C.UTF-8 or not.