linux sort 指令的学习与使用
任务
1. 用man sort 查看sort的帮助文档
2. sort常用选项有哪些,都有什么功能?提交相关使用的截图
3. 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
什么是sort命令
Linux sort 命令用于将文本文件内容加以排序。
sort 可针对文本文件的内容,以行为单位来排序。
- 使用 man -k sort 查看 sort 命令的 参数 使用方法 函数调用 等信息。
PS: OpenEuler操作系统就对man指令这个功能强大的手册支持不佳。
sort命令的参数说明
-
-b 忽略每行前面开始出的空格字符。
-
-c 检查文件是否已经按照顺序排序。
-
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-
-f 排序时,将小写字母视为大写字母。
-
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-
-m 将几个排序好的文件进行合并。
-
-M 将前面3个字母依照月份的缩写进行排序。
-
-n 依照数值的大小排序。
-
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-
-o<输出文件> 将排序后的结果存入指定的文件。
-
-r 以相反的顺序来排序。
-
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏
位。 -
--help 显示帮助。
-
--version 显示版本信息。
-
[-k field1[,field2]] 按指定的列进行排序。
sort语法
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]
常用sort命令实践
- sort命令实践
实现排序
- sort-b命令实践
忽略前空白进行排序
- sort-o命令实践
指定输出文件
- sort-c命令实践
检查文件是否已排好序,若排好序不进行输出,若未排好序则进行输出。
- sort-n命令实践
按照数值大小排序
- sort-f命令实践
无视大小写
- sort-u命令实践
去除重复元素
- sort-r命令实践
倒序排序
- sort-t命令实践
对结构按一定规则排序
如何实现sort命令
设置结构体{
参一
参二
参三
}结构体
排序函数(缓冲数组指针){
调用C语言标准库中qsort函数进行快速排序
}
main(){
传入敏感参数(以结构体中某项参数为基准)
使用open系统调用打开指定文件
使用read系统调用从指定文件中读取内容到buf缓冲数组,直到文档结束
调用 排序函数 传入缓冲数组指针
按照 结构体.参数 进行输出
使用close系统调用关闭文件
}
20191331lyx
2021/9/28