Linux sort命令

sort - sort lines of text files 按照字符的编码对文本行进行排序,不同的语系情况下通常会有不同的排序结果,因为不用的语系对字符的编码通常不同。

查看当前环境下所使用的语系

[root@rhel6164 ~]# echo $LANG
en_US.UTF-8

常用参数及说明:更多详细信息可以参考man sort页面

-f:--ignore-case 忽略大小写

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

-n:使用(数字)进行排序(默认是以文字编码进行排序)

-r:--reverse 反向排序

-u:--unique 相同的数据中,仅出现一行

-t:分隔符,默认是以tab作为分隔符

-k:以那个域来进行排序,通常和-t一起使用


例子

原始文件

[root@rhel6164 test]# cat test.txt
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
一般的排序

[root@rhel6164 test]# cat test.txt | sort #按照每行前面的字符排序
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
重新定义分隔符,选择排序的字段,并且按照数字排序

[root@rhel6164 test]# cat test.txt | sort -t':' -k 3 -n #这里必须要有-n,不然的话,sort不会把第三个字段当成数字来排序
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值