20191310李烨龙作业:MySort
作业:MySort
任务详情
1. 用man sort 查看sort的帮助文档
2. sort常用选项有哪些,都有什么功能?提交相关使用的截图
3. 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
完成过程
1.用man sort 查看sort的帮助文档
sort的用法如下:
sort [OPTION] ... [FILE] ...
2.sort常用选项有哪些,都有什么功能?提交相关使用的截图
关于OPTION是指sort的指令选项,通过这些选项可以让sort完成不同的功能,其中主要的选项如下:
1. -n 将文件中的字符以数字的形式按照顺序排序
2. -r 将文件中的内容按照倒叙排序
3. -k 将文件中的内容依据key的内容来进行排序
4. -c 判断文件是否已经排序完成
5. -o 将输出写入指定文件
6. -t 改变分隔符(默认为空格)
7. -u 去除结果中的重复行
8. -m 合并两个已排序的文件(不会对文件进行排序)

1. -k 指令,指定第二个域进行排序。


2.-o指令,将排序输出到目标文件中。

该指令无法创建目标文件,需要提前touch filename。

按照我的预想来看,应该会将文件按照第一个域进行排序并将结果输出到目标文件中,但是结果是两个文件都被清空了。
发现参数反了,应该是 -o 目标文件 原文件,可以看见文件2确实是本次输出的结果。

3.-u指令,将文件中的重复内容删除。

4.-c指令,判断文件是否为有序的。

5.-m指令,合并两个已排序文件。

可以看到合并之后的顺序十分杂乱,因为两个文件是按照不同域来进行排序的,所以对于该指令来说两个文件不是有序的,输出的内容是无意义的。该指令不会更改文件的内容。

3.如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
代码思路:该指令本身实现十分简单,排序方面只需要使用系统调用qsort,比较复杂部分的是如何实现sort的众多指令。
伪代码:
1.对指令输入进行判断:包含几个参数
2.系统调用open打开文件,系统调用read读取文件内容,创建二维数组存储文件内容。
数组第一列存key,第二列存整体内容。
3.系统调用qsort对数组第一列进行排序。
4.系统调用write将排序后的数组第二列存入指定文件夹,系统调用close关闭文件。
20191310李烨龙作业:MySort的更多相关文章
- 20191310李烨龙Linux C语言编程基础
Linux C语言编程基础 任务详情 0. 基于Ubuntu或OpenEuler完成下面的任务(OpenEuler有加分) 1. 选择教材第二章的一节进行编程基础练习(2.10,2.11,2.12,2 ...
- 20155213 第十二周课堂作业MySort
20155213 第十二周课堂作业MySort 作业要求 模拟实现Linux下Sort -t : -k 2的功能 参考 Sort的实现 提交码云链接和代码运行截图 初始代码 1 import java ...
- 课下选做作业MySort
20175227张雪莹 2018-2019-2 <Java程序设计> 课下选做作业MySort 要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort ...
- 网络1712--c语言嵌套循环作业总结
1.助教有话说 首先,每周一篇的博客作业是很有必要的:编程的过程不仅仅是会敲几行代码.能够通过PTA就大吉大利了,你更应该做到的是梳理代码思路,通过与他人代码思路的比对,取其精华,进而不断进阶,才能逐 ...
- MySort(选做)
一.题目要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实 ...
- C#语言和数据库基础
第一章 第一个C#程序 Vs2012密钥 RBCXF-CVBGR-382MK-DFHJ4-C69G8 01..net和C#的区别 大概在2000年,微软推出了一种革命性的产品--.NET(战略) 目标 ...
- 3000本IT书籍下载地址
http://www.shouce.ren/post/d/id/112300 黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299 黑 ...
- “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排
“2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排1.“提出表扬的同学:姜依萍,王雪玲,徐楠,相文君,赵晓未提交作业的同学:任红强,王瑞强,宗鹏新,扎西才让,布旦刀杰,范 ...
- “2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈
对于“2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈 1.博文未写者:高树平 高俊梅 冯小丽 缪召召 王瑞强 宗鹏新 李向龙 马润韬 米奇辉 卯保云——不及时提交博客的同学人数出 ...
随机推荐
- Django学习day12随堂笔记
每日测验 """ 1.什么是cookie和session,你能描述一下它们的由来和工作机制吗(切勿糊弄,敷衍了事) 2.django中如何操作cookie和session ...
- Java中的三大特性:封装、继承、多态
封装: 概念:封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问,适当的封装可以让代码更容易理解与维护,也加强了代码的安全性. 原则:将属性隐藏起来,若需要访问某个属性,提供公共方法对 ...
- Shell系列(10)- bash环境变量(3)
环境变量与用户自定义变量的区别 环境变量是全局变量,用户自定义变量是局部变量. 用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生 ...
- 定要过python二级 选择题第5套
1. 2.. 3. https://zhidao.baidu.com/question/1952133724016713828.html 4. 5. 6. 7. 8. 9. 10. 11.
- 鸿蒙内核源码分析(异常接管篇) | 社会很单纯 , 复杂的是人 | 百篇博客分析OpenHarmony源码 | v39.03
百篇博客系列篇.本篇为: v39.xx 鸿蒙内核源码分析(异常接管篇) | 社会很单纯,复杂的是人 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CPU ...
- 鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案 | 百篇博客分析OpenHarmony源码 | v30.02
百篇博客系列篇.本篇为: v30.xx 鸿蒙内核源码分析(事件控制篇) | 任务间多对多的同步方案 | 51.c.h .o 进程通讯相关篇为: v26.xx 鸿蒙内核源码分析(自旋锁篇) | 自旋锁当 ...
- P4126-[AHOI2009]最小割【网络流,tarjan】
正题 题目链接:https://www.luogu.com.cn/problem/P4126 题目大意 给出\(n\)个点\(m\)条边的一张有向图和起点终点.对于每条边求其是否是最小割的可行割/必须 ...
- bzoj4025-二分图【线段树分治,并查集】
正题 题目链接:https://darkbzoj.tk/problem/4025 题目大意 \(n\)个点\(m\)条边,每条边会在一个\(T\)以内的时间段内出现,对于任意一个\(T\)以内的时刻求 ...
- Python - poetry(1)包管理利器的入门介绍
Python 虚拟环境详解 https://www.cnblogs.com/poloyy/p/15266382.html poetry 官方介绍 github:https://github.com/p ...
- Java多线程--实现同步的9种方法
我们通常说的保持同步,其实就是对共享资源的保护.在单线程模型中, 我们永远不用担心"多个线程试图同时使用同一个资源的问题", 但是有了并发, 就有可能发生多个线程竞争同一个共享资源 ...