sort命令默认并不以ASCII排序

回复 收藏

咱们在课程中讲,sort命令默认以ASCII排序,但这是要一个前提的。先来看看ASCII表:

ASCII_Code_Chart-Quick_ref_card.jpg

做个实验吧:
1.txt文件内容如下:
1
2
a
[
b
A
C
{
*

sort的时候,结果并不是按ASCII排序的:

[
{
*
1
2
a
A
b
C

这结果很明显不对。

man sort的时候发现了一个信息:
*** WARNING *** The locale specified by the environment affects sort order.  Set LC_ALL=C to get the traditional sort order that uses native byte values.
它意思是说,sort排序的结果会跟运行sort的系统环境有关系,而影响sort排序结果的环境变量为LC_ALL,如果想要按ASCII排序,需要设置LC_ALL=C
我们在系统上查看该变量

echo $LC_ALL 结果为空,然后设置一下:
export LC_ALL=C

再次排序:
*
1
2
A
C
[
a
b
{

这次结果对了。

2017-07-03 17:42 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: