sort指令总结

符号 阅读:340 2021-05-14 10:30:51 评论:0

1、sort的定义:
sort将文件的每一行作为一个单位相互比较,比较原则是从首字符向后依次按ASCII码进行比较,最后将它们按升序输出。
【例】
这里写图片描述

2、选项
(1)-u:在输出行中排序并去除重复行。
【例】
这里写图片描述

(2)-r:逆序排序。
说明:sort默认的排序方式是升序的,如果想改成降序,就需要加个-r。
【例】
这里写图片描述

(3)-o:将排序结果写入文件中。
说明:由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。但是,如果你想把排序结果输出到原文件中,用重定向就不行了。
【例】
这里写图片描述

(4)-n:按数值排序。
说明:如果按字符排序,当10与2比较时,排序程序会先比较1和2,这样就会出现10放在2前面的情况。所以,最好指明排序的方式。
【例】
这里写图片描述

(5)sort的-t选项和-k选项:
1)命令格式:sort -t ‘分隔符’ -k ‘指定列数’
【例】
这里写图片描述
说明:这个文件有三列,列和列之间用冒号隔开,第一列表示食物类型,第二列表示食物数量,第三列表示食物价格。

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

3、练习:
file6内容:公司名称 公司人数 人均薪资
google 111000 15000
baidu 100000 10000
guge 8000 7500
sohu 90000 10000

(1)按第一个域进行排序
这里写图片描述

(2)按公司人数降数排序
这里写图片描述

(3)按照公司员工薪资排序,薪资相同的按照公司员工数量升序排序。
这里写图片描述

(4)从公司英文名称的第二个字母开始进行排序
这里写图片描述
释:“-k 1.2”表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。其中,baidu因为第二个字母是a而名列榜首;sohu和google第二个字符都是o,但是sohu的h在google的o前面,所以sohu排在第二行,google排在第三行;guge就只能排在第四行了。

(5)只针对公司英文名称的第二个字母进行排序,如果相同则只按照员工工资进行降序排序。
这里写图片描述
释:“-k 1.2,1.2”表示只对第二个字母进行排序。“-k 1.2”因为省略了end部分,就意味着从第二个字母开始到最后一个字符为止的字符串进行排序。对于员工工资进行排序,使用“-k 3,3”这是最准确的表述,表示只对本域进行排序,如果省略了后面的3,就变成对第3个域开始到最后一个域位置的内容进行排序。


声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们