linux下的Sort命令
来源:互联网 发布:java web快速开发 ide 编辑:程序博客网 时间:2024/06/05 04:25
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
语法
sort(选项)(参数)
选项
-b:忽略每行前面开始出的空格字符;-c:检查文件是否已经按照顺序排序;-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符;-f:排序时,将小写字母视为大写字母;-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符;-m:将几个排序号的文件进行合并;-M:将前面3个字母依照月份的缩写进行排序;-n:依照数值的大小排序;-o<输出文件>:将排序后的结果存入制定的文件;-r:以相反的顺序来排序;-t<分隔字符>:指定排序时所用的栏位分隔字符;+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
参数
文件:指定待排序的文件列表。
实例
sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
[root@mail text]# cat sort.txtaaa:10:1.1ccc:30:3.3ddd:40:4.4bbb:20:2.2eee:50:5.5eee:50:5.5[root@mail text]# sort sort.txtaaa:10:1.1bbb:20:2.2ccc:30:3.3ddd:40:4.4eee:50:5.5eee:50:5.5
忽略相同行使用-u选项或者uniq:
[root@mail text]# cat sort.txtaaa:10:1.1ccc:30:3.3ddd:40:4.4bbb:20:2.2eee:50:5.5eee:50:5.5[root@mail text]# sort -u sort.txtaaa:10:1.1bbb:20:2.2ccc:30:3.3ddd:40:4.4eee:50:5.5或者[root@mail text]# uniq sort.txtaaa:10:1.1ccc:30:3.3ddd:40:4.4bbb:20:2.2eee:50:5.5
sort的-n、-r、-k、-t选项的使用:
[root@mail text]# cat sort.txtAAA:BB:CCaaa:30:1.6ccc:50:3.3ddd:20:4.2bbb:10:2.5eee:40:5.4eee:60:5.1
-k选项的具体语法格式:
-k选项的语法格式:
FStart.CStart Modifie,FEnd.CEnd Modifier-------Start--------,-------End-------- FStart.CStart 选项 , FEnd.CEnd 选项
这个语法格式可以被其中的逗号,
分为两大部分,Start部分和End部分。Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start
部分的FStart
和C.Start
。C.Start
也是可以省略的,省略的话就表示从本域的开头部分开始。FStart.CStart
,其中FStart
就是表示使用的域,而CStart
则表示在FStart
域中从第几个字符开始算“排序首字符”。同理,在End部分中,你可以设定FEnd.CEnd
,如果你省略.CEnd
,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。
从公司英文名称的第二个字母开始进行排序:
$ sort -t ' ' -k 1.2 facebook.txtbaidu 100 5000sohu 100 4500google 110 5000guge 50 3000
使用了-k 1.2
,表示对第一个域的第二个字符开始到本域的最后一个字符为止的字符串进行排序。你会发现baidu因为第二个字母是a而名列榜首。sohu和 google第二个字符都是o,但sohu的h在google的o前面,所以两者分别排在第二和第三。guge只能屈居第四了。
只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序:
$ sort -t ' ' -k 1.2,1.2 -nrk 3,3 facebook.txtbaidu 100 5000google 110 5000sohu 100 4500guge 50 3000
由于只对第二个字母进行排序,所以我们使用了-k 1.2,1.2
的表示方式,表示我们“只”对第二个字母进行排序。(如果你问“我使用-k 1.2
怎么不行?”,当然不行,因为你省略了End部分,这就意味着你将对从第二个字母起到本域最后一个字符为止的字符串进行排序)。对于员工工资进行排 序,我们也使用了-k 3,3
,这是最准确的表述,表示我们“只”对本域进行排序,因为如果你省略了后面的3,就变成了我们“对第3个域开始到最后一个域位置的内容进行排序” 了。
- Linux下的sort命令
- linux下的Sort命令
- Linux下sort命令
- Linux下sort命令的使用
- linux下sort命令的用法
- Linux下sort命令的使用
- Linux下的sort命令解析
- Linux下的sort排序命令详解
- Linux下的sort排序命令详解
- Linux下sort命令小结
- Linux下sort命令小结
- Linux下sort命令小结
- linux 下sort 命令排序
- linux的sort命令
- Linux的Sort命令
- Linux的sort命令
- Linux下的sort排序命令详解(一)
- linux sort命令的用法
- QT视频播放错误解决方法及视频播放实现代码
- UML(Unified Modeling Language)统一建模语言
- 移动端点餐系统总结
- 2017多校四 1012题 hdu 6078 Wavel Sequence dp好题
- [2]React 深入浅出-----React的一个高级表格实现功能
- linux下的Sort命令
- 每日一题(27)—— define定义一个宏表明1年中有多少秒
- Latex标题页的上标和脚注
- Jenkins部署到远程服务器
- HDU1213 & 并查集的一些学习笔记
- 经验分享之数据库优化
- 我印象中的指针与数组4
- spring实战-注解装配bean
- java面试题,各大企业常见的java笔试题之六