Linux命令:排序 sort

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

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 注销 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 注销 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 注销 /  更改 )

Connecting to %s