sort练习
1. 用man sort 查看sort的帮助文档**
2.sort常用选项
短参数 | 长参数 | 说明 |
---|---|---|
-n | – number-sort | 按字符串数值排序,与-g区别为不转为浮点数 |
-g | –general-number-sort | 按通用数值排序,支持科学计数法 |
-f | –ignore-case | 忽略大小写,默认大小写字母不同 |
-k | –key=POS1[,POS2] | 排序从POS1开始,若指定POS2,则POS2结束,否则以pos1排序 |
-t | –field-separator=SEP | 指定列的分割符 |
-r | –reverse | 降序排序,默认为升序 |
-h | –human-numeric-sort | 使用易读性数字(例如: 2K 1G) |
-u | –unique | 去除重复的行 |
-o | –output=FILE | 将输出写入文件 |
- 常用用法举例
1.默认排序
2.数字排序
使用-n对数字进行排序
3.指定列排序
sort排序的时候,可以按字段分割的数据进行排序。-t参数表示行的分割字符,-k表示第几列
下列是使用"/"进行分割,不同列情况下的排序
4.对文件内容进行去重
如果文件内容有很多重复的,需要进行去重,可以通过使用-u参数
5.降序排序
-r 以相反的顺序来排序
- 同时发现参数字母好像可以进行合并,经过实验sort -n -r num.txt与sort -nr num.txt结果相同
6.将sort输出内容写入文件
想把sort的排序内容写回文件,可以使用-o
7.检查文件内容是否已排好序
-c会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1
-C会检查文件是否已排好序,如果乱序,不输出内容,仅返回1
- 同时发现参数字母好像可以进行合并,经过实验sort -n -r num.txt与sort -nr num.txt结果相同
3. 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
代码思路:
1.尝试寻找可以使用的系统调用或C库函数
但是并没有老师上课所说的2组与3组,不知道为什么,只能进行想法构想
- 使用open系统调用需要打开的文件
- 使用read系统调用读取文件内容
- 使用qsort函数进行排序
- 如果有需要新文件使用creat创建一个新的文件放置新的文本
- 使用write将排序好的内容进行输出
参考网页:https://blog.csdn.net/qq_16836151/article/details/51527160