linux sort命令的重要用法:按分隔符、字母、数字、月份进行排序

发布时间 2023-08-17 18:29:36作者: 风始于青萍末

1.指定分隔符,以某一列进行排序并输出

#-t 指定一个分隔符
#-k 后面跟数字,指定按第几列进行排序
#-r 反序排序(升序变成降序)
#按“:”做分隔符,以第3列,也就是用户UID,来从大到小排序
[root@localhost opt]# sort -t ":" -nk3 -r /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
putong:x:8004:8004::/home/putong:/bin/bash
www:x:8003:8003::/home/www:/bin/bash
stick:x:8002:8002::/home/stick:/bin/bash
esnode:x:8001:8001::/home/esnode:/bin/bash
......

2.输出内容按字母规则进行排序

#默认按字母规则进行排序
[root@localhost opt]# cat /etc/group | sort
adm:x:4:
apache:x:48:
audio:x:63:
bin:x:1:
cdrom:x:11:
daemon:x:2:
......

3.输出内容按数字大小进行排序

[root@localhost opt]# cat num.txt 
21
456
9789
234
24
11
1
31
32
1
3
31

#-n 数字从小到大排序  
[root@localhost opt]# cat num.txt | sort -n

1
1
3
11
21
24
31
31
32
234
456
9789

#数字从大到小排序 
[root@localhost opt]# sort -r num.txt 
9789
456
32
31
31
3
24
234
21
11
1
1

4.输出内容按月份进行排序

[root@localhost opt]# cat month.txt 
December
October
January
November
July
April
February
March
August
May
September
June

#-M 按月份进行排序
[root@localhost opt]# sort -M month.txt 
January
February
March
April
May
June
July
August
September
October
November
December

5.指定目录下的文件按大小进行排序

#把etc目录下所有的文件,按从大到小排序 
[root@localhost ~]# du -h /etc | sort -nr