SORT练习
*参考《Linux Shell编程从初学到精通》
1. 用man sort 查看sort的帮助文档
- 首先需要对man手册进行完善,具体命令如下:
- 然后进行man sort
2. sort常用选项有哪些,都有什么功能?提交相关使用的截图
-
-t
sort命令是分域对文件进行排序的,默认的域分隔符是空格符,-t选项可用于设置分隔符。 -
-k
sort命令默认情况下是按第1域进行排序的,也可以按指定某个域进行排序,-k选项就是用于指定域的。sort命令以1表示第1域、以2表示第2域,以此类推。 -
-n
-n选项可以指定根据数字大小进行排序。-n选项不是单独使用的,一般放在域号之后,且不是按照字符串顺序排序,而是按数字大小进行排序的。 -
-r
-r选项用于将排序结果逆向显示。 -
-u
-u选项用于去除排序结果中的重复行。 -
-o
sort命令默认将排序后的结果输出到屏幕上,如果需要将结果保存到另一个文件中,我们可以使用-o选项加上文件名来完成。 -
-c
-c选项用于测试文件是否已经排好序。 -
-m
-m选项用于将两个排好序的文件合并成一个排好序的文件。
3. 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
(1)fopen打开文件
(2)读取键盘的输入指令(如-t、-k、-n…)
(3)fread读取这个文件,当读取到空格或指令分割符(可由-t设置)时将字符串存入二维数组,且数组序号增加1
(4)主函数根据输入的指令,调用相应的函数,如:sort函数(进行排序)、write函数(-o、-m:将相应字符串存入文件)、compare函数(-u:比较是否重复)等等。
简单字符串排序练习:
-
运行结果
-
代码