《快学BigData》--Linux sort 命令详解(10)

2023-03-06 21:10:28 浏览数 (2)

Linux sort 命令详解

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b :忽略最前面的空格符部分;

-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;

-n :使用『纯数字』进行排序(默认是以文字型态来排序的);

-r :反向排序;

-u :就是 uniq ,相同的数据中,仅出现一行代表;

-t :分隔符,默认是用 [tab] 键来分隔;

-k :以那个区间 (field) 来进行排序的意思

-o : 对数据进行重定向

1-1)、准备数据

[root@hadoop1 /]# vi test.log

aa 1

bb 3

cc 2

ab 4

ba 1

de 2

ef 6

dfd 7

1-2)、对数据进行排序

[root@hadoop1 /]# vi source.log

google:110:5000

baidu:100:5000

guge:50:3000

sohu:100:4500

A)、对数据进行正序排序

[root@hadoop1 /]# sort source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

默认的是按照第一个单词进行排序

B)、对数据进行倒叙排序

[root@hadoop1 /]# sort -r source.log

sohu:100:4500

guge:50:3000

google:110:5000

baidu:100:5000

C)、对数据去重

[root@hadoop1 /]# sort -u source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

D)、把排序完的数据进行重新保存

[root@hadoop1 /]# sort source.log -o source.log

root@hadoop1 /]# cat source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

-o 参数不会对之前的数据进行清空

E)、按照第一个字段排序

[root@hadoop1 /]# sort -t ':' -k 1 source.log

baidu:100:5000

google:110:5000

guge:50:3000

sohu:100:4500

-t :表示分隔符

-k : 标志制定那个字段进行排序

F)、按照多个字段排序

[root@hadoop1 /] # sort -n -t ':' -k 2 -k 3 source.log

guge:50:3000

sohu:100:4500

baidu:100:5000

google:110:5000

-n : 是按照数字排序

G)、第三个字段按照降序排序

[root@hadoop1 /] # sort -n -t ':' -k 2 -k 3r source.log

guge:50:3000

baidu:100:5000

sohu:100:4500

google:110:5000

-k 3r :表示降序排序

或者这样写

sort -t ':' -k 2n -k 3nr source.log

guge:50:3000

baidu:100:5000

sohu:100:4500

google:110:5000

H)、按照第一个单词第二个字母排序

[root@hadoop1 /] #sort -t ':' -k 1.2 source.log

baidu:100:5000

sohu:100:4500

google:110:5000

guge:50:3000

0 人点赞