sort以文件的每一行为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

用法:sort [OPTION]... [FILE]...

参  数:

  -b   忽略每行前面开始出的空格字符。

  -c   检查文件是否已经按照顺序排序。

  -f   排序时,忽略大小写字母。

  -M   将前面3个字母依照月份的缩写进行排序。

  -n   依照数值的大小排序。

  -o<输出文件>   将排序后的结果存入指定的文件。

  -r   以相反的顺序来排序。

  -t<分隔字符>   指定排序时所用的栏位分隔字符。

  -k  选择以哪个区间进行排序。

  -u  排序后相同的行只顯示一次。

sort的-o选项

由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。

例:

[root@localhost ~]# sort -r a.txt

6

5

4

3

2

1

[root@localhost ~]# sort -r a.txt >b

[root@localhost ~]# cat b

6

5

4

3

2

1

但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

[root@localhost ~]# cat a.txt

6

5

4

3

2

1

[root@localhost ~]# sort -r a.txt >a.txt

[root@localhost ~]# cat a.txt

[root@localhost ~]# 

a.txt 文件的內容被清空了。

-o選項可以把內容寫入原文件

[root@localhost ~]# cat a.txt

1

2

6

3

4

5

[root@localhost ~]# sort a.txt -o a.txt

[root@localhost ~]# cat a.txt

1

2

3

4

5

6