Shell编程--sort

目标

能够使用sort对字符串升序或降序排序

能够使用sort 对数字升序或降序

能够使用sort 对多列进行排序

介绍

sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出或重定向输出到指定文件。

语法

sort (options) 参数
选项说明
==-n==number,依照数值的大小排序
==-r==reverse, 以相反的顺序来排序
==-t 分隔字符==设置排序时所用的分隔字符, 默认空格是分隔符
==-k==指定需要排序的列
-d排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f排序时,将小写字母视为大写字母
-b忽略每行前面开始出的空格字符
==-o 输出文件==将排序后的结果存入指定的文件
-u意味着是唯一的(unique),输出的结果是去完重了的
-m将几个排序好的文件进行合并

参数:指定待排序的文件列表

示例

vim sort.txt
张三 30  
李四 95  
播仔 85 
播仔 85
播仔 86
AA 85
播妞 100


### 数字升序,按照“ ”空格分割后的第2列数字升序排序。
sort -k2n,2 sort.txt

### 数字升序去重先按照“ ”空格分割后的,  然后,按照第2列数字升序排序,  最后对所有列去重
sort -k2n,2 -uk1,2 sort.txt
#注意: 先排序再去重

#数字升序去重结果保存到文件
sort -k2n,2 -uk1,2 -o sort2.txt sort..txt

#数字降序去重
sort -k2nr,2 -uk1,2 sort.txt

 #多列排序

sort3.txt
公司A,部门A,3
公司A,部门B,0
公司A,部门C,10
公司A,部门D,9
公司B,部门A,30
公司B,部门B,40
公司B,部门C,43
公司B,部门D,1
公司C,部门A,30
公司C,部门B,9
公司C,部门C,100
公司C,部门D,80
公司C,部门E,60

#以","分割先对第一列字符串升序,  再对第3列数字降序
sort -t "," -k1,1 -k3nr,3 sort3.txt

小结

能够使用sort对字符串升序或降序排序

字符串升序: sort -kstart,end 文件

字符串降序: sort -kstartr,end 文件

能够使用sort 对数字升序或降序

数字升序: sort -kstartn,end 文件

数字降序: sort -kstartnr,end 文件

能够使用sort 对多列进行排序

sort -kstart[nr],end -kstart[nr],end ... 文件

sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值