Linux 系统函数sort
Linux 系统函数sort
作者:20191322
任务详情
- 用man sort 查看sort的帮助文档
- sort常用选项有哪些,都有什么功能?提交相关使用的截图
- 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
实践
sort帮助文档
代码:
man sort
sort常用选项
-
默认
sort后面输入需要排序的数据,以换行符分割,按CTRL+D结束,从小到大排序
-
-t参数
sort命令是分域队文件进行排序的,默认的域分隔符是空格符,-t选项可用于设置分隔符
我们先建立一个test_sort文件,记录各地的名称,号码等。
然后使用-t参数对文件内部进行排序
sort -t: test_sort #以:为域分隔符,以默认的第一个域按从小到大的方式进行排序
(此时以字符的顺序比较) -
-k参数
sort命令默认情况下是按第一域进行排序的,也可以按指定某个域进行排序,-k就是用于指定域的
sort -t: -k2 test_sort #以:为域分隔符,以第二个域按从小到大的方式进行排序
-
-n参数
如果需要按照数字大小进行比较,就需要用到-n参数(否则都是以字符串形式来比较的)。-n参数可以指定根据数字大小进行排序
sort -t: -k3n test_sort #以:为域分隔符,以第三个域按数字大小从小到大的方式进行排序
-
-r参数
-r参数用于将排序结果逆向显示
-
-u参数
-u参数可以去除排序结果中的重复行
-
-o参数
将输出保存到另外一个文件
-
-c参数
用于测试文件是否已经排好序了,如果没有排好则会有提示
-
-m参数
将两个排序好的文件合并为一个
伪代码实现
-
采用read系统函数读入需要排序的文件,并将数据保存在一个数组里
-
对该数组调用qsort系统函数进行排序
-
将排序好的数组通过write系统函数写入最开始的文件,或使用printf函数打印在屏幕上