Linux基础——sort排序命令

sort [-t 分隔符] [-kn1,n2] [-nru]
此处n1<n2
-t 后跟分隔符,作用和cut -d 一样,
-n 使用纯数字排序,只针对数字,如果是字母,会按0处理
-r 反向排序
-u 去重复
-kn1,n2 由n1区间排序到n2区间,可以只写-kn1,即对n1字段排序,cut区间用减号表示,sort用逗号,表示。
NOTE: -t 和 -k 要在一起用;sort不加任何选项,按照ACSII进行排序,并非单纯的数字或者字母

[root@localhost ~]# head -n5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sort不加任何选项,从 首字母排序,按ASCII码值比较,升序输出。
[root@localhost ~]# head -n5 /etc/passwd |sort
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

-t 跟分隔符, -k 后面跟数字,表示按照第几个字符串排序;-n表示使用纯数字排序
[root@localhost ~]# head -n5 /etc/passwd |sort -t: -k3 -n
root:x:0: 0:root:/root:/bin/bash
bin:x: 1:1:bin:/bin:/sbin/nologin
daemon:x: 2:2:daemon:/sbin:/sbin/nologin
adm:x: 3:4:adm:/var/adm:/sbin/nologin
lp:x: 4:7:lp:/var/spool/lpd:/sbin/nologin

-k3,5 表示第3到第5区域级的字符串排序,-r表示反向排序
第三段到第五段,先排第三段,如果第三段中有多行一样,那么就按第四段排,如果第四段也有多行一样,就按第五段排。
[root@localhost ~]# head -n5 /etc/passwd |sort -t: -k3,5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost ~]# head -n5 /etc/passwd |sort -t: -k3,5 -r
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

-n 和 -u 一起用,sort会吧文档中的字母看成是0
#echo
[root@localhost ~]# cut -d: -f1 /etc/passwd |sort -n -u
root
#vim 1.txt
1
1
2
2
3
3
4
4
ab
bc
ef
#sort -n 1.txt 【数字大小排序,字母按0排序,若文档没有数字,所有字符会看成0】
ab
bc
ef
1
1
2
2
3
3
4
4
#sort -u 1.txt 【去重复,并不能知道重复了多少,哪里重复】
1
2
3
4
ab
bc
ef
#sort -nu 1.txt 【把所有的字母当做0处理,去重复之后显示最上面的一个】
ab
1
2
3
4

NOTE:文档中如果有一行全是标点符号,如果 -n 排序,则会显示在第一行。
,.,.,..,.,...
ab
bc
ef
1
1
下面省略


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值