sort命令实践

摘要:
sortsorttest。Txt对文本文件的内容进行排序。您可以看到顺序很奇怪,因为排序是从第一个字符开始判断的。Sort-nsorttest.txt-n表示按数字排序Sort-n-rsorttest.txt被添加到-r以降序排序usorttest。txt-u将删除重复的行。图中有55、52和17条重复的行。输入命令后将删除多余的行。编写伪代码和相关函数或系统调用来排序以实现排序,例如sort1,打开文件,并通过指针char*文件打开文件。如果成功打开文件,则返回指向文件的指针,如果失败,则返回NULL。

1.用man sort 查看sort的帮助文档

sort命令实践第1张

2.sort常用选项有哪些,都有什么功能?提交相关使用的截图

常用选项及相关功能(参考https://www.runoob.com/linux/linux-comm-sort.html)

-b:忽略每行前面开始出的空格字符。
-c:检查文件是否已经按照顺序排序。
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f:排序时,将小写字母视为大写字母。
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m:将几个排序好的文件进行合并。
-M:将前面3个字母依照月份的缩写进行排序。
-n:依照数值的大小排序。
-u:意味着是唯一的(unique),输出的结果是去完重了的。
-o:<输出文件> 将排序后的结果存入指定的文件。
-r:以相反的顺序来排序。
-t<分隔字符>:指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help:显示帮助。
--version:显示版本信息。
[-k field1[,field2]]:按指定的列进行排序。

查看完sort帮助文档后,新建一个文本文件sorttest,每行写一个数字,cat file进行查看

之所以将数字分行写,是因为sort的功能原理是将文件的每一行进行相互比较,从首字符向后按ascii码值进行比较,最后按升序输出。

sort命令实践第2张

sort sorttest.txt 对文本文件的内容进行排序,可以看到顺序有些奇怪,因为sort是从首字符先进行判断。

sort命令实践第3张

sort -n sorttest.txt -n表示按数字进行排序

sort命令实践第4张

sort -n -r sorttest.txt 加入-r,使其按降序排列

sort命令实践第5张

sort -u sorttest.txt -u会删除重复行,图中重复的有55、52、17,输入命令后多余的被删去。

sort命令实践第6张

sort -n -u sorttest.txt -o sorttest1.txt 由于sort只是起到过滤的作用,不会改变原文件,因此如果需要输出排序的结果,需要使用-o将排序后的结果重定向写入到文件。这里我将输出结果写入一个新文本文件sorttest1.txt

sort命令实践第7张

sort --help 查看帮助文档

sort命令实践第8张

sort --version 查看版本信息

sort命令实践第9张

3.如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用

sort实现

sort(数据,另一个数据,排序方法),比如 sort(int a;int b ;Bubble)

1、打开文件(fopen),通过一个指针char *file打开指向的文件,打开成功则指向该文件的指针返回,失败则返回NULL。

2、读取文件中的内容(fread),从起始地址将对象读取到数组中并返回成功读取的对象个数。若出现错误或到结束的地址,则返回零且不进行其他动作。

3、调用排序函数sort(int a;int b ;Bubble)对数组数据进行比较、排序。

4、将排序后的新数据重定向写入文件中(write),可以写入新文件也可以覆盖原文件。

5、关闭文件流(fclose),释放文件指针和有关的缓冲区。如果流成功关闭,返回 0,否则返回EOF(-1)。

免责声明:文章转载自《sort命令实践》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#修改SVG图片显示大小模块结构篇:7.1)动力型塑料齿轮轮系设计步骤详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SQL 给字符串补0

第一种方法: right('00000'+cast(@countasvarchar),5) 其中'00000'的个数为right函数的最后参数,例如这里是5,所以有5个0 @count就是被格式化的正整数 例如: 1、select right('00000'+cast(dense_rank() over( order by zsbh ) as VARCHA...

CRON表达式

一、Cron 表达式格式 Cron 表达式是一个字符串,字符串以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义,Cron 有如下两种语法格式: (1)Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Mo...

字符串中的count()方法

描述 Python count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。 语法 count()方法语法: str.count(sub, start= 0,end=len(string)) 参数 sub -- 搜索的子字符串 start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。 end...

那些年java MD5加密字符编码的坑

相信做过MD5加密的童鞋都遇到过字符编码的坑,一般加密出来的结果和其他人不一样都是字符编码不一致导致的,比如类文件的字符编码、浏览器的字符编码等和对方不一致,所以就需要转码统一字符。 以下是笔者转码过程中遇到的坑: 不要new String("XXXX".getBytes("UTF-8")),之后将转码后的字串传入MD5去加密,会遇到意想不到的效果,有的字...

linux ls命令按时间显示文件

  本文介绍下,使用ls命令显示文件,并按时间排序的方法,供大家学习参考。 在linux系统中,使用ls命令按时间排序文件,其实很简单,如下: #ls -tr 即可按时间排序当前目录下的文件。 附,ls命令的参数中文详解: -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式...

URL的编码和解码

URL的编码和解码   参考:阮一峰--关于URL编码 1 为什么要URL编码 在因特网上传送URL,只能采用ASCII字符集      也就是说URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,即只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'()[不包括双引号]、以及某些保留字(空格转换为+),才可以不经过编...