Ubuntu 10.04(Lucid)中的实用sort
程序始终不区分大小写地排序,就像您指定--ignore-case
的那样。
The two sort just give the same result:
echo -e "c\nb\nB\na" | sort
echo -e "c\nb\nB\na" | sort --ignore-case
但有时我想按大小写区分排序,即大写字母在前,小写字母在后。可以吗?
答案1
覆盖排序顺序。
echo -e "c\nb\nB\na" | LC_COLLATE=C sort
答案2
有趣的是,还有另一种排序顺序,如下所示:
echo -e "c\nb\nB\na" | LC_COLLATE=C sort --ignore-case
将大写字母置于其对应的小写字母之前。
以下是它们在语言环境中的输出比较(我添加了“d”和“D”)en_US.UTF-8
(被覆盖的地方除外):
echo -e "d\nD\nc\nb\nB\na" | sort
echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort
echo -e "d\nD\nc\nb\nB\na" | LC_COLLATE=C sort --ignore-case
输出:
1 2 3 4
- - - -
a a B a
b b D B
B B a b
c c b c
d d c D
D D d d