zoukankan      html  css  js  c++  java
  • sort命令实践

    1.用man sort 查看sort的帮助文档

    2.sort常用选项有哪些,都有什么功能?提交相关使用的截图

    常用选项及相关功能(参考https://www.runoob.com/linux/linux-comm-sort.html)

    -b:忽略每行前面开始出的空格字符。
    -c:检查文件是否已经按照顺序排序。
    -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
    -f:排序时,将小写字母视为大写字母。
    -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
    -m:将几个排序好的文件进行合并。
    -M:将前面3个字母依照月份的缩写进行排序。
    -n:依照数值的大小排序。
    -u:意味着是唯一的(unique),输出的结果是去完重了的。
    -o:<输出文件> 将排序后的结果存入指定的文件。
    -r:以相反的顺序来排序。
    -t<分隔字符>:指定排序时所用的栏位分隔字符。
    +<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
    --help:显示帮助。
    --version:显示版本信息。
    [-k field1[,field2]]:按指定的列进行排序。
    

    查看完sort帮助文档后,新建一个文本文件sorttest,每行写一个数字,cat file进行查看

    之所以将数字分行写,是因为sort的功能原理是将文件的每一行进行相互比较,从首字符向后按ascii码值进行比较,最后按升序输出。

    sort sorttest.txt 对文本文件的内容进行排序,可以看到顺序有些奇怪,因为sort是从首字符先进行判断。

    sort -n sorttest.txt -n表示按数字进行排序

    sort -n -r sorttest.txt 加入-r,使其按降序排列

    sort -u sorttest.txt -u会删除重复行,图中重复的有55、52、17,输入命令后多余的被删去。

    sort -n -u sorttest.txt -o sorttest1.txt 由于sort只是起到过滤的作用,不会改变原文件,因此如果需要输出排序的结果,需要使用-o将排序后的结果重定向写入到文件。这里我将输出结果写入一个新文本文件sorttest1.txt

    sort --help 查看帮助文档

    sort --version 查看版本信息

    3.如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用

    sort实现

    sort(数据,另一个数据,排序方法),比如 sort(int a;int b ;Bubble)

    1、打开文件(fopen),通过一个指针char *file打开指向的文件,打开成功则指向该文件的指针返回,失败则返回NULL。

    2、读取文件中的内容(fread),从起始地址将对象读取到数组中并返回成功读取的对象个数。若出现错误或到结束的地址,则返回零且不进行其他动作。

    3、调用排序函数sort(int a;int b ;Bubble)对数组数据进行比较、排序。

    4、将排序后的新数据重定向写入文件中(write),可以写入新文件也可以覆盖原文件。

    5、关闭文件流(fclose),释放文件指针和有关的缓冲区。如果流成功关闭,返回 0,否则返回EOF(-1)。

  • 相关阅读:
    数据库默认隔离级别
    openldap安装
    new word
    ldap概念
    Oracle 计算函数
    informix 学习资料收集
    convert to groovy project
    ldap资料
    hibernate session
    IE BUG相关文章集合
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15344546.html
Copyright © 2011-2022 走看看