- 论坛徽章:
- 0
|
man 中提到 The sorting order of characters in range expressions is determined by the current locale and the value of the LC_COLLATE shell variable, if set. 但是我在shell下执行 echo [a-z] ,发现顺序和这个变量无关。
ls 执行后的结果:
$LC_COLLATE="C" ls [a-z]
A C E G I K M O Q S U W Y b d f h j l n p r t v x z
B D F H J L N P R T V X a c e g i k m o q s u w y
$LC_COLLATE="en_US" ls [a-z]
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y
echo 执行后的结果:
$LC_COLLATE="C" echo [a-z]
a A b B c C d D e E f F g G h H i I j J k K l L m M n N o O p P q Q r R s S t T u U v V w W x X y Y z
$LC_COLLATE="en_US" echo [a-z]
a A b B c C d D e E f F g G h H i I j J k K l L m M n N o O p P q Q r R s S t T u U v V w W x X y Y z
为什么在LC_COLLATE=C 的时候 ls 和 echo 得到的结果是不同的呢? |
|