sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!   1 sort的工作原理   sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

[rocrocket@rocrocket programming]$ cat seq.txt  banana   apple   pear   orange

[rocrocket@rocrocket programming]$ sort seq.txt   apple   banana   orange   pear

2 sort的-u选项   它的作用很简单,就是在输出行中去除重复行。

[rocrocket@rocrocket programming]$ cat seq.txt   banana   apple   pear orange   pear   [rocrocket@rocrocket programming]$ sort seq.txt   apple   banana   orange   pear   pear   [rocrocket@rocrocket programming]$ sort -u seq.txt   apple   banana   orange   pear   pear

由于重复被-u选项无情的删除了。

3 sort的-r选项   sort默认的排序方式是升序,如果想改成降序,就加个-r就搞定了。

[rocrocket@rocrocket programming]$ cat number.txt   1   3   5 2   4

[rocrocket@rocrocket programming]$ sort number.txt   1   2   3   4   5

[rocrocket@rocrocket programming]$ sort -r number.txt   5   4   3   2   1

4 sort的-o选项   由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。   但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。

[rocrocket@rocrocket programming]$ sort -r number.txt > number.txt

[rocrocket@rocrocket programming]$ cat number.txt

[rocrocket@rocrocket programming]$   看,竟然将number清空了。

就在这个时候,-o选项出现了,它成功的解决了这个问题,让你放心的将结果写入原文件。这或许也是-o比重定向的唯一优势所在。

[rocrocket@rocrocket programming]$ cat number.txt   1   3   5   2   4

[rocrocket@rocrocket programming]$ sort -r number.txt -o number.txt

[rocrocket@rocrocket programming]$ cat number.txt   5   4   3   2   1

5 sort的-n选项   你有没有遇到过10比2小的情况。我反正遇到过。出现这种情况是由于排序程序将这些数字按字符来排序了,排序程序会先比较1和2,显然1小,所以就将10放在2前面喽。这也是sort的一贯作风。 我们如果想改变这种现状,就要使用-n选项,来告诉sort,“要以数值来排序”!

[rocrocket@rocrocket programming]$ cat number.txt   1   10   19   11   2   5

[rocrocket@rocrocket programming]$ sort number.txt   1   10   11   19   2   5

[rocrocket@rocrocket programming]$ sort -n number.txt   1   2   5 10   11   19

6 sort的-t选项和-k选项   如果有一个文件的内容是这样:

[rocrocket@rocrocket programming]$ cat facebook.txt   banana:30:5.5   apple:10:2.5   pear:90:2.3   orange:20:3.4   这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。   那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?   幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)   指定了间隔符之后,就可以用-k来指定列数了。   [rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt   apple:10:2.5   orange:20:3.4   banana:30:5.5   pear:90:2.3

我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。

7 其他的sort常用选项   -f会将小写字母都转换为大写字母来进行比较,亦即忽略大小写   -c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1   -C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1   -M会以月份来排序,比如JAN小于FEB等等   -b会忽略每一行前面的所有空白部分,从第一个可见字符开始比较

linux sort 排序 性能,Linux中sort 排序相关推荐

  1. linux sort命令 性能,linux sort 命令详解

    linux sort 命令详解 sort命令的功能是对文件中的各行进行排序.sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的.实际 上,sort命令可以被认 ...

  2. linux sort命令 性能,Linux sort 命令简单使用

    求助 -g与-n命令的差别还有待研究,如有知道的小伙伴不吝赐教. 常用命令 按ASCII码从小到大排序输出 sort test.txt 按ASCII码从大到小排序输出 sort -r test.txt ...

  3. linux中修改mysql排序规则_MySQL中的排序规则

    MySQL中的排序规则.在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有 ...

  4. 排序算法 - 面试中的排序算法总结

    排序算法总结 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中.因为其实现代码较短,应用较常见.所以在面试中经常会问到排序算法及其相关的问题.但万变不离其宗,只要熟悉了思想,灵活运用也不 ...

  5. java中的排序方法,Java中的排序比较方式:自然排序和比较器排序

    这里所说到的Java中的排序并不是指插入排序.希尔排序.归并排序等具体的排序算法.而是指执行这些排序算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样 ...

  6. python中sort什么意思,python中sort是什么意思

    Python里的sort语句 >>> x = [[1,4],[5,2]] >>> x [[1, 4], [5, 2]] >>> x.sort() ...

  7. oracle和mysql查询条件排序_Oracle数据库中ORDERBY排序和查询按IN条件的顺序输出

    ORDER BY非稳定的排序提一个问题: oracle在order by 排序时,是稳定排序算法吗? 发现用一个type进行排序后,做分页查询,第一页的数据和第二页的数据有重复 怀疑是order by ...

  8. php asort和sort的区别,PHP中sort、asort与ksort区别用法详解

    PHP中sort.asort与ksort对数组的排序方法异同点: sort只依据值从小到大排序,键值不参与排序 asort依据值排序,键值参与排序 ksort依据键值排序,值参与排序 sort只依据值 ...

  9. python中sort函数源代码_Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

最新文章

  1. 一行代码解决对象数组排序(sort)
  2. docker新增目录映射_开发也需了解的运维知识之Docker
  3. python工程师薪资坑吗-不在打工就在找坑的路上,3年+程序员都爱跳槽?
  4. nssl1247-A【dp】
  5. java 日志接收服务器_Java SMTP 发信收不到, 日志显示服务器接收了
  6. 排班matlab,用yalmip工具箱设计一个排班问题时出现了一些问题,有大神能帮忙
  7. 做工作流时候 Mybatis 在 insert 之后想获取自增的主键 id,但却总是返回1
  8. Openresty 与 Tengine
  9. 数据包的忽略打印与脱敏打印
  10. 美团架构师谈论程序员进阶架构师所需能力模型
  11. FreebuF黑客专访系列之吴翰清(刺):接下来几年,有两样东西必定会火
  12. 被封域名什么原因?如何预防域名被封呢?
  13. 未雨绸缪,DBA四大安全守则及各种数据库灾难案例丨文末送书
  14. Python生成n位随机数字字符串
  15. 升级macOS Catalina 后辅助功能空白无法添加的问题
  16. S01E08-小雅:我在读研期间参与 CHAOSS 开源社区的心路经历
  17. 统计学与计算机考研学校排名,2018统计学考研院校排名
  18. 【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)
  19. mongodb中文件导入报错error inserting documents解决方法
  20. phpexcel删除行_在PHPexcel中删除空行

热门文章

  1. cad字体渐变_[AI10]透明渐变得问题 字体命令的一个变 pantone色系 AutoCAD2006中文版...
  2. 内心的秘密写在脸上,科学家用面部识别预测性取向和犯罪倾向
  3. 第十周学习总结--助教
  4. 《HTML5 开发实例大全》——1.9 使用 summary 标记元素实现交互
  5. 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一2.8 小结
  6. JavaEE开发之SpringMVC中的自定义拦截器及异常处理
  7. JQuery:JQuery遍历详解
  8. pat乙级相当于什么水平_英语四六级/专四/专八相当于美国人什么水平?
  9. dns服务期搭建使用_使用maradns搭建简易dns服务器(本地实现dns劫持)
  10. mfc ctabctrl 双排显示_盐城便宜的开口型双排脚手架生产厂家-斯戴博盘扣脚手架...