sort 命令是根据不同的资料型别以行为单位对资料进行排序。
简介
sort 命令是根据不同的资料型别以行为单位对资料进行排序。
sort 的预设比较规则是从首字元向后,按照 ASCII 码值进行比较,将结果按照升序输出。
用法
sort 命令的基本格式如下:
1
sort [-bcfMnrtk] [source-file] [-o output-file]
sort 命令可使用的引数有:
1
2
3
4
5
6
7
8
9
10
11
-b 忽略每行前面的所有空格字元,从第一个可见字元开始比较。
-c 检查档案是否已经排好序,如果乱序则输出第一个乱序行的相关资讯,最后返回 1
-C 检查档案是否已经排好序,如果乱序,则不输出内容,仅返回 1
-f 排序时忽略大小写字母。
-M 将前面 3 个字母依照月份的缩写进行排序,比如 JAN 小于 FEB 。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的档案
-r 降序输出
-t <分隔字元> 指定排序时所用的栏位分隔字元
-u 在输出行中去除重复行
-k 选择以哪个区间进行排序。
下面将会对这些引数进行介绍,其中简单的引数就不再赘述了。
引数
-o 选项
sort是把排序后结果输出到标准输出,所以需要使用重定向将结果写入指定的档案,比如sort file > newfile 。
但是重定向的方式在遇到这种需求就无能为力了——把结果输出到原档案中。
如果还是使用重定向的方式,则会把原档案给清空。
而使用-o 引数则可以完美解决这个问题:
1
sort -r test.dat -o test.dat
-t 与-k 选项
对于某些有固定格式的档案,比如:
a 12
b 32
c 3
如果想以第二列数值大小降序输出,则需要使用-t 和-k 引数了。其中-k 指定分隔符,-k 指定待排序的列。
1
sort -nr -tt -k2 test.bat -o test.bat