介绍

sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:

sort [-bcfMnrtk][源文件][-o 输出文件]

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参数

-b 会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。

-c 会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1。

-C 会检查文件是否已排好序,如果乱序,不输出内容,仅返回1

-u 输出重复行

-f 会将小写字母都转换为大写字母来进行比较,亦即忽略大小写。

-M 会以月份来排序,比如JAN小于FEB等等

-n 依照数值的大小排序。

-o 将排序后的结果存入指定的文件。

-r 以相反的顺序来排序。

-t 指定排序时所用的栏位分隔字符。

-k 选择以哪个区间进行排序。

实例

sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

[root@localhost ~]# cat sort.txt

banana

apple

pear

orange

[root@localhost ~]# sort sort.txt

apple

banana

orange

pear

[root@localhost ~]# sort sort2.txt

12345 #注意是按acii码的升序排列

221

339

349

782

999

去除重复行

[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

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

-n选项,按数字排序

[root@localhost ~]# sort -r sort2.txt

999

782

349

339

221

12345 #默认是按字符排序,由前到后,这里最前面的1最小

[root@localhost ~]# sort -r -n sort2.txt

12345

999

782

349

339

221

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选项,后面可以设定间隔符。指定了间隔符之后,就可以用-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

$ sort -n -t ‘ ‘ -k 3r -k 2 facebook.txt #sort支持这种设定,就是说设定域排序的优先级,先以第2个域进行排序,如果相同,再以第3个域进行排序。(如果你愿意,可以一直这么写下去,设定很多个排序优先级)

baidu 100 5000

google 110 5000

sohu 100 4500

guge 50 3000

sort -nr作用 linux,【Linux高频命令专题(1)】sort相关推荐

  1. Linux高频命令汇总,Linux下高频命令分类辑录(基本使用篇)

    本文目的:总结linux下常用命令的基本使用方法 文件权限: 文档权限设置命令:chmod 数字模式: 文档权限由-rwxrwxrwx十个字符组成,其中第一个代表文档类型,后面九个字符按照顺序分为三组 ...

  2. sort -nr作用 linux,sort命令

    1.sort命令 sort命令可以给文本进行排序.sort命令操作的是行. shell中sort命令有3中执行模式,分别是排序文本,检查文件是否已经排序,合并文件. 2.sort的使用 语法: sor ...

  3. 【Linux高频命令专题(24)】grep

    简述 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则 ...

  4. 【Linux高频命令专题(23)】tar

    概述 通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为li ...

  5. 【Linux高频命令专题(5)】rmdir

    简述 rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的.(注意,rm - r dir命令可代替rmdir,但是有很大危险性.)删除某目录时也必须具有对父目录的写权限. 命 ...

  6. Linux的常用命令思维导图

    1.帮助命令 1.1 help命令 #语法格式: 命令 --help #作用: 查看某个命令的帮助信息 # 示例: # ls --help 查看ls命令的帮助信息# netstat --help 查看 ...

  7. linux命令中info,Linux中zipinfo命令起什么作用呢?

    摘要: 下文讲述Linux中zipinfo的功能说明,如下所示: zipinfo(zip information的英文缩写) zipinfo命令功能: 用于输出压缩文件信息, 返回压缩文件的详细信息 ...

  8. linux文件前三行如何排序,Sort工具Linux sort命令用于将文本文件内容加以排序。sort可针对文本文件的内容,以行为单位来排序。sort 常见选项b 忽略每行前面开始出...

    Sort工具 Linux sort命令用于将文本文件内容加以排序. sort可针对文本文件的内容,以行为单位来排序. sort 常见选项 b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照 ...

  9. linux中whoami命令的作用是,浅谈linux中的whoami与 who指令

    浅谈linux中的whoami与 who指令 whoami 功能说明: 显示用户名称 语法: whoami 补充说明: 显示自身的用户名称,本指令相当于执行  id -un 指令 whoami 与 w ...

最新文章

  1. 运算放大器在超高频信号作用下的偏移量的变化
  2. C# 生成随机字符串
  3. android 动态录音权限,Android如何判断手机是否有录音权限的工具类
  4. 2019b官方手册中文版_数据科学|「最全」实至名归,NumPy 官方早有中文教程,结合深度学习,还有防脱发指南...
  5. 一个很cool的C#的高性能数学库
  6. mac mysql打不开闪一下_mac系统上 MySQL Workbench意外退出,再也打不开
  7. 持续集成工具 jenkins 实践
  8. html输入格式限制,jQuery输入框限制输入内容格式插件
  9. linux 文件句柄 sock,tcp socket文件句柄泄漏
  10. 计算机图形学圆反走样代码,计算机图形学——反走样
  11. 大数据时代你需要知道的7个大数据定义
  12. 国际清算银行要求更多的加密货币监管
  13. hbase/hadoop异常:No lease on /hbase/archive/data/... File is not open for writing
  14. “风雨如晦,鸡鸣不已。既见君子,云胡不喜。” 王者荣耀李白王昭君情侣头像故事...
  15. Hbase设置数据过期时间
  16. linux性能监控命令—tsar命令
  17. 中级微观经济学:Chap 7 显示偏好
  18. 系统管理的三维模型及实例分析
  19. 网络工程师(中级)下午笔记大全
  20. d盾web查杀 linux,D盾扫描_D盾_Web查杀 [webshell查杀]

热门文章

  1. 递增的整数序列链表的插入_程序员:数据结构——链表List、ArrayList、LinkedList...
  2. mysql 排序取前4,mysql分组取每组前几条记录(排序)
  3. 测试化验加工费云服务器文献信息,监管▕ 科研经费使用中的 “红线”和“禁区”典型问题自查清单...
  4. c语言追踪机械腿位置,基于传感器的下肢可穿戴机械腿软件系统设计与实现
  5. android studio编译找不到程序包,AndroidStudio编译提示“程序包R不存在”可能的解决方案,希望你用不到。。。-Go语言中文社区...
  6. mysql 写入性能瓶颈_如何通过性能调优突破MySQL数据库性能瓶颈?
  7. 计算机课教学要求,《计算机基础课程教学基本要求》研制报告
  8. python组合数据类型实验_Python程序设计实验报告七:组合数据类型
  9. 实战oracle 12c 处理索引坏块一例
  10. AGP与PCI-E的区别和PCI-E接口与PCI接口的区别