Shell:sort工具

2021/7/10 7:10:09

本文主要是介绍Shell:sort工具,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

简介

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

语法

sort (options) 参数

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

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

案例

准备一个文件

vi sort.txt

张三 99
李四 100
王五 88
二哈 90
赵六 78
java 60

按照“ ”空格分割后的第2列数字升序排序。

sort -t " " -k2n,2 sort.txt

image-20210709153758252

按照“ ”空格分割后的第2列数字降序排序。

sort -t " " -k2nr,2 sort.txt

image-20210709154137201

将降序结果保存到文件

sort -t " " -k2nr,2 -o sort2.txt sort.txt

image-20210709154249546

先按照“ ”空格分割后的, 然后,按照第2列数字升序排序, 最后对所有列去重

 sort -t " " -k2n,2 -uk1,2 sort.txt

image-20210709154347474

多列排序

准备数据:

vi 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

image-20210709154521643

总结

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

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

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

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

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

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

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

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



这篇关于Shell:sort工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程