作业: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 指令,指定第二个域进行排序。
![](https://img2020.cnblogs.com/blog/1812924/202109/1812924-20210927224940341-603779780.png)

​ 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的更多相关文章

  1. 20191310李烨龙Linux C语言编程基础

    Linux C语言编程基础 任务详情 0. 基于Ubuntu或OpenEuler完成下面的任务(OpenEuler有加分) 1. 选择教材第二章的一节进行编程基础练习(2.10,2.11,2.12,2 ...

  2. 20155213 第十二周课堂作业MySort

    20155213 第十二周课堂作业MySort 作业要求 模拟实现Linux下Sort -t : -k 2的功能 参考 Sort的实现 提交码云链接和代码运行截图 初始代码 1 import java ...

  3. 课下选做作业MySort

    20175227张雪莹 2018-2019-2 <Java程序设计> 课下选做作业MySort 要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort ...

  4. 网络1712--c语言嵌套循环作业总结

    1.助教有话说 首先,每周一篇的博客作业是很有必要的:编程的过程不仅仅是会敲几行代码.能够通过PTA就大吉大利了,你更应该做到的是梳理代码思路,通过与他人代码思路的比对,取其精华,进而不断进阶,才能逐 ...

  5. MySort(选做)

    一.题目要求 注意:研究sort的其他功能,要能改的动代码,需要答辩 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实 ...

  6. C#语言和数据库基础

    第一章 第一个C#程序 Vs2012密钥 RBCXF-CVBGR-382MK-DFHJ4-C69G8 01..net和C#的区别 大概在2000年,微软推出了一种革命性的产品--.NET(战略) 目标 ...

  7. 3000本IT书籍下载地址

    http://www.shouce.ren/post/d/id/112300    黑客攻防实战入门与提高.pdfhttp://www.shouce.ren/post/d/id/112299    黑 ...

  8. “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排

    “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排1.“提出表扬的同学:姜依萍,王雪玲,徐楠,相文君,赵晓未提交作业的同学:任红强,王瑞强,宗鹏新,扎西才让,布旦刀杰,范 ...

  9. “2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈 1.博文未写者:高树平 高俊梅 冯小丽 缪召召 王瑞强 宗鹏新 李向龙 马润韬 米奇辉 卯保云——不及时提交博客的同学人数出 ...

随机推荐

  1. 安卓使用讯飞sdk报错

    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.iflytek.cloud.SpeechSy ...

  2. 【简单数据结构】二叉树的建立和递归遍历--洛谷 P1305

    题目描述 输入一串二叉树,用遍历前序打出. 输入格式 第一行为二叉树的节点数n.(n \leq 26n≤26) 后面n行,每一个字母为节点,后两个字母分别为其左右儿子. 空节点用*表示 输出格式 前序 ...

  3. Jmeter系列(19)- 常用配置文件

    JMeter.properties :跟Jmeter配置相关的配置信息都在这边,比如:Jmeter GUI页面的语言.日志级别设置等 User.properties:用户自定义相关的所有变量,会复写J ...

  4. HCNP Routing&Switching之路由控制-策略路由

    前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...

  5. python的列表和java的数组有何异同

    今天面试被问到,自己学习一下. python的列表是可变长的,定义时不需要指定长度:pyhton是弱对象类型,python的列表存储的数据类型可以不相同:python的列表更加灵活,如可以通过''命令 ...

  6. POJ3734-Blocks【EGF】

    正题 题目链接:http://poj.org/problem?id=3734 题目大意 用思种颜色给\(n\)个格子染色,要求前两种颜色出现偶数次,求方案. \(1\leq T\leq 100,1\l ...

  7. SDA 课程

    课件总览 Slide1:Data Science & Digital Society Slide2:DEDA Digital Economy & Decision Analytics ...

  8. 10.12 LNMP

    yum install nginx php php-fpm mariadb-server php-mysql php.conf server { listen 8000; # pass the PHP ...

  9. 题解 Division Game

    link Description 懒得写了. Solution 设 \(f(x)\) 表示对于一个位置操作了 \(x\) 次后刚好变为 \(1\) 的方案数,可以看出的是 \(f(x)\) 同样也是对 ...

  10. Fiddler抓包一键生成代码

    首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...