sort命令的学习与实践
一、用man sort 查看sort的帮助文档
*sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
[rocrocket@rocrocket programming]$ cat seq.txt
banana
apple
pear
orange
[rocrocket@rocrocket programming]$ sort seq.txt
apple
banana
orange
pear

二、sort常用选项有哪些,都有什么功能?提交相关使用的截图
选项:
-b:忽略前面空格。
-c:测试文件是否已经排序。
-d:根据字典顺序排序,仅比较数字 字母 空格等字符。
-f:忽略大小写。
-i:仅比较可打印字符。
-n:纯数字排列
-R:根据哈希值随机排序。
-r:反向,颠倒顺序。
-k:定义排序关键字。原来的:第几个区间,与t相辅。
-t:分隔符
-m:仅仅合并已经排序好的文件,不执行排序操作。
-s:稳定的排序算法。
-o:排序结果写入文件,而不是标准输出到设备。
-u:相同的行只留一行
-M:月份
使用截图:
源文件:

Sort -b test1.txt:忽略前面空格
我们可以看见空格的影响消失了。

Sort -r test1.txt:反向,颠倒顺序

Sort -n test1.txt :纯数字排序

Sort -u test1.txt:相同的行只留一行
我们可以看见,相同的只剩一个。
空格也算作字符。

4 sort的-o选项
由于sort默认是把结果输出到标准输出,所以需要用重定向才能将结果写入文件,形如sort filename > newfile。
但是,如果你想把排序结果输出到原文件中,用重定向可就不行了。
Sort -r filename -o newfilename
sort -r test1.txt -o t.txt
我们查看t.txt文件:

Sort --help:查看帮助文档

一、如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用
我的sort实现过程:
1、打开文件(fopen指令),通过一个指针char *file打开指向的文件,打开成功则指向该文件的指针返回,失败则返回NULL。
fopen(filename/url,mode) 这两个参数是必选的,第一个文件名/url,第二个打开的方式
$handle = fopen($filename,'r');
打开方式常用的有以下几种:
r - 只读方式打开,将文件指针指向文件头
r+ - 读写方式打开,将文件指针指向文件头
w - 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之
w+ -读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之
a -写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
a+ -读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之
2、读取文件:使用fread函数
fread函数可从文件中读取二进制数据
语法:
A = fread(fid, count)
A = fread(fid, count, precision)
其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。
3、调用sort函数进行排序
I)Sort函数有三个参数:
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
4、将排序后的新数据重定向写入文件中(write),可以写入新文件也可以覆盖原文件。
5、关闭文件:fclose
fclose()用来关闭fopen()打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
【返回值】若关文件动作成功则返回0,有错误发生时则返回EOF,并把错误代码存到errno。
sort命令的学习与实践的更多相关文章
- linux sort命令学习
linux sort命令以行为单位对文本文件进行排序. 接下来我们会以/tmp/sort_test.txt这个文本文件为例对sort命令的用法进行说明. sh-# cat /tmp/sort_test ...
- redis入门指南(三)—— 事务、过期时间、SORT命令、消息通知与管道
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...
- shell之sort命令
1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...
- 【转】linux sort 命令详解
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...
- 3. sort命令
转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...
- linux sort 命令详解
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按AS ...
- hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...
- linux sort 命令详解(转 )
linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...
- 【转】linux中的sort命令
转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...
随机推荐
- 前端框架VUE——数据绑定及模板语法
一.数据绑定 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统: <div id="app"> {{ msg }} </di ...
- CodeForce-803C Maximal GCD(贪心数学)
Maximal GCD CodeForces - 803C 现在给定一个正整数 n.你需要找到 k 个严格递增的正整数 a1, a2, ..., ak,满足他们的和等于 n 并且他们的最大公因数尽量大 ...
- 做一个U盘的学习路线
最近想研究一个U盘,然后顺便熟悉一下USB协议.因为USB协议比较复杂, 常用的复杂外设除了WiFi,Ethernet,SDIO和USB这些就是USB了,学习USB的时候肯定要拿一个东西下手,所以简单 ...
- composer 下载包慢
方法一: 修改 composer 的全局配置文件(推荐方式) 打开命令行窗口(windows用户)或控制台(Linux.Mac 用户)并执行如下命令: composer config -g repo. ...
- django 高级扩展-中间件-上传图片-分页-富文本-celery
""" django 高级扩展 一.静态文件 1.css,js,json,图片,字体等 2.配置setting,在最底下设置静态文件目录,写入下面代码 #配置静态文件目录 ...
- 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 | 百篇博客分析OpenHarmony源码 | v41.03
百篇博客系列篇.本篇为: v41.xx 鸿蒙内核源码分析(任务切换篇) | 看汇编如何切换任务 | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度谁 ...
- P4351-[CERC2015]Frightful Formula【组合数学,MTT】
正题 题目链接:https://www.luogu.com.cn/problem/P4351 题目大意 \(n*n\)的矩形,给出第一行和第一列的数,剩下的满足\(F_{i,j}=a*F_{i,j-1 ...
- Dapr + .NET Core实战(七)Secrets
什么是Secrets 应用程序通常会通过使用专用的存储来存储敏感信息,如连接字符串.密钥等. 通常这需要建立一个密钥存储,如Azure Key Vault.Hashicorp等,并在那里存储应用程序级 ...
- kubelet源码分析——关闭Pod
上一篇说到kublet如何启动一个pod,本篇讲述如何关闭一个Pod,引用一段来自官方文档介绍pod的生命周期的话 你使用 kubectl 工具手动删除某个特定的 Pod,而该 Pod 的体面终止限期 ...
- SpringIOC 理论推导
IOC理论实现 UserDao接口 public interface UserDao { void say(); } UserDaoImpl实现类 public class UserDaoImpl i ...