sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式:
  sort [-bcfMnrtk][源文件][-o 输出文件] 
补充说明:sort可针对文本文件的内容,以行为单位来排序。

参  数:
  -b   忽略每行前面开始出的空格字符。
  -c   检查文件是否已经按照顺序排序。
  -f   排序时,忽略大小写字母。
  -M   将前面3个字母依照月份的缩写进行排序。
  -n   依照数值的大小排序。
  -o<输出文件>   将排序后的结果存入指定的文件。
  -r   以相反的顺序来排序。
  -t<分隔字符>   指定排序时所用的栏位分隔字符。
  -k  选择以哪个区间进行排序。
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下面通过几个例子来讲述Sort的使用。

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

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

用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$ Sort seq.txt > result

(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
(5)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

(6) 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

(7) 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

(8) 其他的sort常用选项

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

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

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

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

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

linux sort命令相关推荐

  1. linux sort 命令详解

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

  2. linux sort 命令详解(转 )

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

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

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

  4. python sort怎么用,Linux Sort命令详细用法(有实例)

    Linux Sort命令详细用法(有实例) sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! Linux sort命令进阶: 1 sort的工作原理 so ...

  5. linux sort 命令

    linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...

  6. linux sort命令和du命令使用

    linux sort命令和du命令使用 下面是我整理文档时发现比较重要的命令 du命令行使用介绍 我想知道当前文件夹下面哪些文档比较大? #显示文件夹下面文档的所占用空间的大小,以M,G形式显示 du ...

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

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

  8. 【Linux】一步一步学Linux——sort命令(53)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 sort命令是在Linux里非常有用,它将文件进行排序,并 ...

  9. linux sort 命令实用手册

    目录 1,基本使用 2,进阶使用 Linux 中的sort 命令是一个很实用的工具,用于对文本内容以行为单位进行ASCII 码排序,默认按照升序进行排序(当然也可以按照降序). sort 命令的格式如 ...

  10. linux sort命令 排序,Linux sort排序方法

    在文件的操作过程中,因为文件过多,往往需要进行一下排序,排序方法也就是从小到大排序或者从大到小排序.比如我们从nginx日志中需要找到访问量最长的url,那就需要对请求时间进行一个排序,根据请求时间长 ...

最新文章

  1. jQuery 超屏加载
  2. 让假图无所遁形,阿里篡改图像检测大赛集结号令打响
  3. c语言rand随机输出字母,菜鸟求助,写一个随机输出26个英文字母的程序
  4. QT的QTechnique类的使用
  5. 7-27 御膳房 (5 分)
  6. 学python还是java贴吧_是学python还是java?一张图告诉你!
  7. 给linux用户加入sudo权限
  8. Python 测试驱动开发(五)测试数据库(上)
  9. pinpoint agent性能优化方面官方文档翻译
  10. html网页中加入音乐播放器,HTML网页调用 网易云 音乐播放器代码
  11. 并行计算圆周率 c语言,并行计算:圆周率计算
  12. Matlab简单爬虫-寻宝天行诛仙在售角色信息
  13. html5接金币游戏源码,利用HTML5实现Canvas聚宝盆接金币游戏
  14. Ajax的简历技能如何写,web前端开发工程师简历专业技能怎么写
  15. 2022年自考专业考试(计算机应用)计算机系统结构练习题
  16. 击石乃有火:华为云的生长逻辑
  17. 报告:我国网民规模达9.4亿,本科以上不足1成,2成网民月收入1000元以下
  18. asp.net人事工资管理系统
  19. 医疗检测机构能力建设指导原则
  20. Android Ble 一连多笔记

热门文章

  1. RandomAccessFile学习笔记
  2. 【Android UI】图片 + 文字展示by SpannableStringBuilder
  3. iOS HTTP与 HTTPS
  4. 输入任意个整数以回车键结束_Enter键只知道回车作用?以下7个用法,你会几个?...
  5. jq append添加的元素click获取不到的解决方法
  6. 解决下载图片不论图像多大总是模糊的问题
  7. Set 和 Map 数据结构
  8. python模块之datetime
  9. 前端开发工程师 - 04.页面架构 - CSS Reset 布局解决方案 响应式 页面优化 规范与模块化...
  10. [No000077]打造自己的Eclipse