sort 是对文件的行进行排序的命令。
常用选项如下:
-f --ignore-case 不区分大小写
-n --numeric-sort 视为数值进行排列
-r --reverse 逆序排列 (从大到小)
-k 指定 --key=指定 指定排序所依据的字段及选项
-t 文字 --field-separator=文字 指定区分字段的分隔符
以以下文件为例:
$ cat sort_data.txt
1 a
8 b
3 d
12 c
#默认为以第一列为key 按字符排序
$ sort sort_data.txt
12 c
1 a
3 d
8 b
#指定-n后以数字大小排序
$ sort -n sort_data.txt
1 a
3 d
8 b
12 c
指定-r选项后可以逆序排列
$ sort -r sort_data.txt
8 b
3 d
1 a
12 c
$ sort -nr sort_data.txt
12 c
8 b
3 d
1 a
-k可以指定排序依据的列
$ sort -k 2 sort_data.txt
1 a
8 b
12 c
3 d
$ sort -k 2r sort_data.txt
3 d
12 c
8 b
1 a
-t 指定分隔列的分隔符
$ cat sort_data.csv
1,4
8,2
3,1
12,13
$ sort -k 2nr -t , sort_data.csv
12,13
1,4
8,2
3,1