Linux命令之sort指令


Linux命令之sort指令

1. 用man sort 查看sort的帮助文档
2. sort常用选项有哪些,都有什么功能?提交相关使用的截图
3. 如果让你编写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   显示版本信息。

在这里,我选取其中一些较为常用的选项进行实践

首先先创建两个文本文件供排序使用

/**********st1**********/
20191301  zhangsan   95  A
20191308  zhaosi     99  A
20191322  wangwu     62  B
20191329  zhaoliu    85  A
20191319  jiayi      74  E
20191212  bingding   55  F
20191315  wuxu       95  D
/**********st2**********/

20191329  zhaoliu    85  A
20191320  pipa       85  A
20191213  wuji       58  B
20191316  shenyou    85  E

经过单一的sort命令后,自动对第一列进行排列,得到如下结果

下面对其它选项进行实践验证

(1)

 sort  st1 -o st3  //将st1文件排序后输出到st3中

(2)

sort -c //检验是否为经过排序的文件,是的话不会提示任何内容,否则会提示出第一个出现错误的行

(3)

sort -r st1 //倒序输出排序结果

(4)

sort -k2 st1 //将st1中的文件的第2列为主关键字进行排序

sort -k4 st1 //将st1中的文件的第4列为主关键字进行排序

(5)

sort -m st1 st2  //将st1与st2的内容合并。
//如果都是排序好的文件的话(st3为st1的排序结果,st4为st2的排序结果)可以直接将两文件合并后排序

3.伪代码及相关函数

已知存在st文件为待排序文本文件

(1)头文件
(2)打开读取文本文件
(3)创立二维数组,以i,j分别作为行号,列号
(4)将文本文件中的内容,按照文件中的顺序代入数组,以空格区分列
(5)根据sort命令,判断排序的主关键字(第几列),然后将列数组进行冒泡排序
默认情况下冒泡排序:将num[1,1]与num[2,1],进行比对,若前者小于后者则继续比对num[2,1]与num[3.1],否则将两者顺序互换,继续比对num[2,1]与num[3.1],直到遍历所有行
(6)在进行冒泡排序时,如果进行互换,还要将同一行的内容全部进行对换
(7)输出最终结果
(8)关闭并保存文件


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM