Linux的 sort 命令
Linux sort
命令用于将文本内容进行排序。
官方定义为:
sort
- sort lines of text files
语法
1 | $ sort [OPTION]... [FILE]... |
常用的参数为:
-c
检查文件是否已经按照顺序排序。-u
意味着是唯一的(unique),输出的结果是去完重了的。-r
以相反的顺序来排序。-k field1[,field2]
按指定的列进行排序。
这里假定测试文件名为testfile:
1 | LiSi 80 |
默认无参数
在使用 sort
命令以默认的式对文件的行进行排序,命令如下:
1 | $ sort testfile |
sort
命令默认情况下将第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
根据第N列排序
对于测试文件而言,或许我们更希望使用数字来统计排序,此时可以使用-k N
参数,其中N为列数
1 | $ sort testfile -k 2 |
检查是否已经排序
在某些情况下,或许只想看看文件是否已经排序,使用-c
参数 :
1 | $ sort -c testfile |
如果没有排序会有输出,而排序的话就没有输出。
逆序排列
如果希望看一下数字从高到低的培训,使用-r
参数:
1 | $ sort testfile -k 2 -r |
-b 忽略每行前面开始出的空格字符。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i
排序时,除了040至176之间的ASCII字符外,忽略其他的字符。-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。