sort命令用于对文本按照行进行排序。
目录
sort命令的语法
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>] [--help][--verison][文件]
参数说明
-
-c 检查文件是否应按照顺序排好
-
-f 将小写字母视为大写字母
- -n 依照数值大小进行排序
- -o<文件> 将排序好的结果存入指定文件
- -r 反向排序
- -t 栏位分隔符
- -k x[.y]指定的列或者字符
- -u 去重处理
案例说明
文件file.txt 原始数据如下
12 23 34
22 32 43
11 29 55
ab cd ef
22 32 43
AB CD EF
1. 按照第一个字母的顺序进行排列
sort file.txt
11 29 55
12 23 34
22 32 43
22 32 43
ab cd ef
AB CD EF
2.去掉重复的行
sort -u file.txt
11 29 55
12 23 34
22 32 43
ab cd ef
AB CD EF
3.查看文件是否是排序好的,如果是乱序的,则要输出第一行不匹配的行
sort file.txt
sort: file.txt:3: disorder: 11 29 55
4.按照第一列数值进行排序
sort -n file.txt
ab cd ef
AB CD EF
11 29 55
12 23 34
22 32 43
22 32 43
5.按照第一列数值反序排序
sort -r file.txt
AB CD EF
ab cd ef
22 32 43
22 32 43
12 23 34
11 29 55
6.按照第二列反序排序
sort -n -k2 file.txt
ab cd ef
AB CD EF
12 23 34
11 29 55
22 32 43
22 32 43
7.按照第一列第二个字符进行反序排序
sort -t' ' -k1.2 -r file.txt
AB CD EF
ab cd ef
22 32 43
22 32 43
12 23 34
11 29 55
8.先按照第一列排序,再按照第三列排序
sort -n -k1 -k3 -r file.txt
22 32 43
22 32 43
12 23 34
11 29 55
AB CD EF
ab cd ef