• 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)。

  • 相关阅读:
    leetcode 18 4Sum
    leetcode 71 Simplify Path
    leetcode 10 Regular Expression Matching
    leetcode 30 Substring with Concatenation of All Words
    leetcode 355 Design Twitte
    leetcode LRU Cache
    leetcode 3Sum
    leetcode Letter Combinations of a Phone Number
    leetcode Remove Nth Node From End of List
    leetcode Valid Parentheses
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15344546.html
Copyright © 2020-2023  润新知