首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
百度
微信开发
微信开放平台
百度小程序
支付宝
facebook
paddle
微信公众平台
微信
twitter
当前位置:
开发笔记
>
开放平台
> 正文
Centos命令——sort
作者:你就是一朵奇葩_518 | 来源:互联网 | 2017-06-14 22:31
功能说明:将文本文件内容加以排序。语法:sort[-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]补充说明:sort可针对文本文件的内容,以行为单位来排序。参数:-b忽略每行前面开始出的空格字符。-c检查文件是否已
功能说明:将文本文件内容加以排序。
语 法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]
补充说明:sort可针对文本文件的内容,以行为单位来排序。
参 数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面通过几个例子来讲述Sort的使用。
用Sort命令对text文件中各行排序后输出其结果。请注意,在原文件的第二、三行上的第一个单词完全相同,该命令将从它们的第二个单词vegetables与fruit的首字符处继续进行比较。
$ cat text
vegetable soup
fresh vegetables
fresh fruit
lowfat milk
$ Sort text
fresh fruit
fresh vegetables
lowfat milk
vegetable soup
用户可以保存排序后的文件内容,或把排序后的文件内容输出至打印机。下例中用户把排序后的文件内容保存到名为result的文件中。
$ Sort text>result
以第2个字段作为排序关键字对文件example的内容进行排序。
$ Sort +1-2 example
对于file1和file2文件内容反向排序,结果放在outfile中,利用第2个字段的第一个字符作为排序关键字。
$ Sort -r -o outfile +1.0 -1.1 example
Sort排序常用于在管道中与其他命令连用,组合完成比较复杂的功能,如利用管道将当前工作目录中的文件送给Sort进行排序,排序关键字是第6个至第8个字段。
$ ls - l | Sort +5 - 7
$ ps -e -o " comm pid time"|Sort -d //按照command的首字母的字母顺序排序
Sort命令也可以对标准输入进行操作。例如,如果您想把几个文件文本行合并,并对合并后的文本行进行排序,您可以首先用命令cat把多个文件合并,然后用管道操作把合并后的文本行输入给命令Sort,Sort命令将输出这些合并及排序后的文本行。在下面的例子中,文件veglist与文件 fruitlist的文本行经过合并与排序后被保存到文件clist中。
$ cat veglist fruitlist | Sort > clist
sort +3 -4 All-Unigene_PlantTFFamily_Abstract.out >All-Unigene_PlantTFFamily_Abstract.sort
sort -k 4 All-Unigene_PlantTFFamily_Abstract.out >All-Unigene_PlantTFFamily_Abstract.sort1
对一个文件两列排序,一列正序一列逆序
sort -k1,1n -k2,2nr file
一列逆序 二列正序
sort -k1,1nr -k2,2n tes.txt >result.txt
对一个文件两列排序
sort -k1,1n -k2,2n file
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会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。
facebook
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
facebook
ML学习笔记20210824分类算法模型选择与调优
3.模型选择和调优3.1交叉验证定义目的为了让模型得精度更加可信3.2超参数搜索GridSearch对K值进行选择。k[1,2,3,4,5,6]循环遍历搜索。API参数1& ...
[详细]
蜡笔小新 2024-12-19 09:10:33
facebook
2017苹果全球开发者大会前瞻:iOS革新、Siri智能音箱与AI技术引领未来
2017年苹果全球开发者大会即将开幕,预计iOS将迎来重大更新,同时Siri智能音箱有望首次亮相,AI技术成为大会焦点。 ...
[详细]
蜡笔小新 2024-12-18 18:02:27
facebook
a16z 推出加密研究实验室
a16z 宣布成立全新的加密研究实验室,旨在推动加密技术和 Web3 领域的科学发展。 ...
[详细]
蜡笔小新 2024-12-11 10:17:03
facebook
图像分类算法的优化策略与实践
本文探讨了《Bag of Tricks for Image Classification with Convolutional Neural Networks》论文中的多项技术,旨在通过具体实例和实验验证,提高卷积神经网络在图像分类任务中的性能。文章详细介绍了从模型训练加速、网络结构调整到训练参数优化等多个方面的改进方法。 ...
[详细]
蜡笔小新 2024-12-09 16:01:40
facebook
探索Python编程的价值与应用
本文探讨了学习Python的重要性和广泛的应用场景,从个人技能提升到职业发展的多个方面进行了详细解析。 ...
[详细]
蜡笔小新 2024-12-09 12:45:30
twitter
ABT 钱包正式全球发布,引领数字身份自主新时代
2023年5月20日凌晨5:20(北京时间),由区块链技术和去中心化应用平台ArcBlock(区块基石)研发的ABT钱包移动应用程序,在苹果App Store和Google Play同步上线,标志着用户在数字世界中首次能够完全掌控自己的身份。 ...
[详细]
蜡笔小新 2024-12-08 16:58:51
facebook
图像标签与以图搜图技术的应用与实践
本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ...
[详细]
蜡笔小新 2024-12-07 14:28:06
facebook
YouTube与Facebook提升直播服务,构建专业直播生态
YouTube宣布加强其直播服务YouTube Live,以应对Amazon Twitch、Facebook Live和Twitter Periscope的竞争。YouTube正逐步放宽对频道订阅者的门槛,让更多创作者能够使用直播功能。 ...
[详细]
蜡笔小新 2024-12-07 12:31:59
facebook
大数据时代的机器学习:人工特征工程与线性模型的局限
本文探讨了在大数据背景下,人工特征工程与线性模型的应用及其局限性。随着数据量的激增和技术的进步,传统的特征工程方法面临挑战,文章提出了未来发展的可能方向。 ...
[详细]
蜡笔小新 2024-12-07 11:58:58
facebook
深入解析com.datastax.driver.core.Metadata中的triggerOnUserTypeChanged方法
本文详细介绍了Java库com.datastax.driver.core.Metadata中的triggerOnUserTypeChanged方法的使用场景和代码实现,通过多个实际案例帮助开发者更好地理解和应用此方法。 ...
[详细]
蜡笔小新 2024-12-06 20:12:21
facebook
chrome安装reactdevtools开发工具
我开始安装react-devtools的时候百度了一波,都是写的不清不楚,官网又都是英文的也不是完全理解,经过一番折腾出来以后,写个文档记录一下,也可避免新手首次安装走弯路我安装react-devtools的前提是本地安装了git以及node我相信准备学react的同学,应该都有了解使用1.首先打开官网:https:github.comfacebook ...
[详细]
蜡笔小新 2024-12-03 08:34:47
facebook
Rackspace利用OpenStack及自定义OCP服务器实现成本大幅削减
Rackspace通过采用OpenStack技术和自定义OCP服务器,成功实现了成本节约,减少了对单一供应商的依赖。 ...
[详细]
蜡笔小新 2024-12-01 19:57:39
facebook
利用神经网络破解数学难题:求解偏微分方程的新途径
一项来自Quantamagazine的最新研究揭示,借助人工智能的深度学习技术,特别是深度神经网络,科学家们能够在数学建模领域取得突破,显著提高了处理复杂系统中偏微分方程的速度与效率。 ...
[详细]
蜡笔小新 2024-12-01 14:44:13
twitter
多轮预订功能现已上线
为提升用户体验,我们推出了全新的多轮预订功能,允许用户在一天内的不同时间段进行NFT预订。 ...
[详细]
蜡笔小新 2024-12-01 13:25:26
微信
《计算机视觉:算法与应用》第二版初稿上线,全面更新迎接未来
经典计算机视觉教材《计算机视觉:算法与应用》迎来了其第二版,现已开放初稿下载。本书由Facebook研究科学家Richard Szeliski撰写,自2010年首版以来,一直是该领域的标准参考书。 ...
[详细]
蜡笔小新 2024-11-30 20:56:47
你就是一朵奇葩_518
这个家伙很懒,什么也没留下!
Tags | 热门标签
百度
微信开发
微信开放平台
百度小程序
支付宝
facebook
paddle
微信公众平台
微信
twitter
RankList | 热门文章
1
Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
2
2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
3
PostgreSQL OR条件
4
禅道测试管理工具的介绍及搭建方法
5
PG12新增的VACUUM命令的SKIP_LOCKED选项
6
如何获取一个对象或者列表的名称?
7
汽车各个档位及其对应的KL编号解析
8
Blender与Substance Painter制作三维手枪的详细教程
9
在win8上安装SQL2000的详细步骤(原创)
10
数据分析的组成部分及其商业价值
11
crontab 自动执行定时任务时,命令无法执行的解决方案
12
SpringMVC工作流程概述
13
litemall源码阅读2.04管理后台前端litemalladmin之husky与lint
14
NetCore WebAPI开发探索及部署方法详解
15
重楼的传世之美
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有