42、sort命令
排序和把相同的放到一起;
42.1、sort命令介绍:
sort命令是一个排序介绍,简而言之就是以什么为分割符,对第几列进行什么排序操作;
42.2、sort命令参数介绍:
-u #去重,会直接把重复的去除 和sort uniq.txt | uniq 等价;
-r #降序,默认的参数是升序;
-n #按照数字进行排序;
-t #指定分割符,默认是空字符串为分割符,类似于awk的-F(awk 默认也是以字符为分割符的),cut的-d;
-k #指定从第几列进行排序,要先指定分割符,默认的分割符是空格;
-k 1,3 #用逗号进行分割字段,指定多列进行排序,表示以第一列和第二列数据进行排序;
-k 1.1,3.3 #;用点号分割字符,表示对第一列的第一个字符到第三列的第三个字符进行排序,此方法可以使用多个k值;
sort如果没有任何参数情况下是:
把相同的放到一起,以空字符串为分割符,然后按第一列进行升序排序;
42.3、实验案例1:
1、实验数据:
[root@backup scripts]# cat sort.txt
10.0.0.9
10.0.0.8
10.0.0.7
10.0.0.7
10.0.0.8
10.0.0.8
10.0.0.9
2、不加参数:
[root@backup scripts]# sort sort.txt
10.0.0.7
10.0.0.7
10.0.0.8
10.0.0.8
10.0.0.8
10.0.0.9
10.0.0.9
3、-n参数:
#按照数字进行升序排序;
[root@backup scripts]# sort -n sort.txt
10.0.0.7
10.0.0.7
10.0.0.8
10.0.0.8
10.0.0.8
10.0.0.9
10.0.0.9
4、-r参数:
#对数据进行降序排列;
[root@backup scripts]# sort -r sort.txt
10.0.0.9
10.0.0.9
10.0.0.8
10.0.0.8
10.0.0.8
10.0.0.7
10.0.0.7
5、按照数字进行降序排列:
[root@backup scripts]# sort -rn sort.txt
10.0.0.9
10.0.0.9
10.0.0.8
10.0.0.8
10.0.0.8
10.0.0.7
10.0.0.7
42.4、实验案例2:
1、实验数据:
[root@backup scripts]# cat sort.txt
10.0.0.9 a
10.0.0.8 k
10.0.0.7 r
10.0.0.7 n
10.0.0.8 c
10.0.0.8 z
10.0.0.9 o
2、指定分割符和指定的列进行排序:
[root@backup scripts]# sort -t " " -k 2 sort.txt
10.0.0.9 a
10.0.0.8 c
10.0.0.8 k
10.0.0.7 n
10.0.0.9 o
10.0.0.7 r
10.0.0.8 z
[root@backup scripts]# sort -k 2 sort.txt
10.0.0.9 a
10.0.0.8 c
10.0.0.8 k
10.0.0.7 n
10.0.0.9 o
10.0.0.7 r
10.0.0.8 z
42.5、企业案例:
1、对mac地址指定多列进行排序:
1)实验数据:
[root@backup scripts]# cat mac.txt
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.3 00:0F:AF:85:70:42
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:6C:42
192.168.3.1 00:0F:AF:81:19:1F
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.2 00:0F:AF:85:55:DE
192.168.1.152 00:0F:AF:85:6C:25
2)方法一:
[root@backup scripts]# sort -t "." -k 3.1,3.1 -nr -k 4.1,4.3 -nr mac.txt
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.3 00:0F:AF:85:70:42
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:6C:42
192.168.3.1 00:0F:AF:81:19:1F
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:5C:41
192.168.2.21 00:0F:AF:85:6C:09
192.168.2.20 00:0F:AF:85:55:DE
192.168.2.2 00:0F:AF:85:55:DE
192.168.1.152 00:0F:AF:85:6C:25
2、查看系统磁盘使用大小:
du -h --max-depth=1 / | sort -n