sort命令:sort - sort lines of text files
参数:-u 去重
-r 倒序或降序
常用参数:
1.按数字排序 -n --number根据字符串的数值进行排序
[root@localhost ~]# sort -n test.log
20.0.0.7
20.0.0.7
20.0.0.8
20.0.0.8
20.0.0.8
20.0.0.9
20.0.0.9
2.指定分隔符排序
-t --field-separator=SEP
use SEP instead of non-blank to blank transition
-t 表示按点号分隔域(类似awk -F,取段$1,$2或cut -d ,取段f)
-k 表示分隔后对应的列,指定第几列或第几列的第几个字符
-k 1,1用逗号来分隔字段,表示第一个字段的开始排序到第一个字段的结尾结束
-k 1.1,3.1 用点分隔字符,表示第一个字段的第一个字符开始排序到第三个字段的第三个字符结束
[root@localhost ~]# cat test.log
20.0.0.9 |b
20.0.0.8 |f
20.0.0.7 |a
20.0.0.7 |c
20.0.0.8 |e
20.0.0.8 |d
20.0.0.9 |g
[root@localhost ~]# sort -t "|" -k2 test.log
20.0.0.7 |a
20.0.0.9 |b
20.0.0.7 |c
20.0.0.8 |d
20.0.0.8 |e
20.0.0.8 |f
20.0.0.9 |g
倒序输出:
[root@localhost ~]# sort -t "|" -rk2 test.log
20.0.0.9 |g
20.0.0.8 |f
20.0.0.8 |e
20.0.0.8 |d
20.0.0.7 |c
20.0.0.9 |b
20.0.0.7 |a
给一组ip地址进行排序
[root@localhost ~]# cat iptest.log
192.168.2.1
192.168.2.2
192.168.2.3
192.168.2.20
192.168.2.22
192.168.2.1
192.168.1.1
192.168.1.11
192.168.0.12
192.168.0.22
192.168.0.123
按ip倒数第二位:
[root@localhost ~]# sort -t"." -k3 iptest.log
192.168.0.12
192.168.0.123
192.168.0.22
192.168.1.1
192.168.1.11
192.168.2.1
192.168.2.1
192.168.2.2
192.168.2.20
192.168.2.22
192.168.2.3
按ip最后一位排序:
[root@localhost ~]# sort -t"." -k4 iptest.log
192.168.1.1
192.168.2.1
192.168.2.1
192.168.1.11
192.168.0.12
192.168.0.123
192.168.2.2
192.168.2.20
192.168.0.22
192.168.2.22
192.168.2.3
对于ip后包含其他信息的进行排序
[root@localhost ~]# cat iptest.log
192.168.2.1 fsdfg
192.168.2.2 gdgsd
192.168.2.3 gdshshs
192.168.2.20 gsdsh
192.168.2.22 fjla
192.168.2.1 jgew
192.168.1.1 iqp
192.168.1.11 gweg
192.168.0.12 ww
192.168.0.22 wgw
192.168.0.123 bnc
升序排列:
[root@localhost ~]# sort -t"." -k3.1,3.1n -k4.1,4.3n iptest.log
192.168.0.12 ww
192.168.0.22 wgw
192.168.0.123 bnc
192.168.1.1 iqp
192.168.1.11 gweg
192.168.2.1 fsdfg
192.168.2.1 jgew
192.168.2.2 gdgsd
192.168.2.3 gdshshs
192.168.2.20 gsdsh
192.168.2.22 fjla
降序排列:
[root@localhost ~]# sort -t"." -k3.1,3.1nr -k4.1,4.3nr iptest.log
192.168.2.22 fjla
192.168.2.20 gsdsh
192.168.2.3 gdshshs
192.168.2.2 gdgsd
192.168.2.1 fsdfg
192.168.2.1 jgew
192.168.1.11 gweg
192.168.1.1 iqp
192.168.0.123 bnc
192.168.0.22 wgw
192.168.0.12 ww