首页 » 网站建设 » ksortphp例题技巧_Linux 史上最全的sort敕令案例打包带走吧

ksortphp例题技巧_Linux 史上最全的sort敕令案例打包带走吧

访客 2024-12-08 0

扫一扫用手机浏览

文章目录 [+]

一、 先容

sort命令是用来对笔墨内容(文档)排序利用的。
同时也可以排序去重、指定字段排序,按照月份排序、按照数字排序,检讨文件是否有序等等。
默认情形是按照字典序排序往后标准输出到屏幕上,但是该命令不会修正原来的文档内容。
sort命令常日和uniq命令以及wc命令一起利用。

ksortphp例题技巧_Linux 史上最全的sort敕令案例打包带走吧

二、 用法

sort [OPTION]... [FILE]...

选项阐明:

-b 忽略开头空格(空缺),默认-f 将所有小写字母转换为大写字母排序-g 数字类型排序,效果同 -n-n 字符串数字按照数字排序, 效果同-g-h 以人类可以阅读(理解)的形式排序-c 检讨是否排序完成-m 合并两个 文件排序-r 降序(逆序)-o 将排序往后的内容保存文件-k 找到指定的列排序,下标从1开始-u 排序往后去除重复行-t 默认情形下的分隔符为空缺符(空格、制表符等),利用-t可以自定义指定分隔符-M 按照月份排序

三、 案例

3.0 默认排序

如果month.txt 文件内容如下:

[root@dongjing sort]# cat month.txtJunAprSepJulAug

默认排序(不加任何的选项)

[root@dongjing sort]# sort month.txtAprAugJulJunSep

默认按照字典序排列

3.1 按照月份排序

[root@dongjing sort]# sort -M month.txtAprJunJulAugSep

默认排序只是按照字典序排序,但是对付月份来说并不能符合我们的哀求,以是我们利用 -M 按照月份排序

3.2 按照人类阅读排序

如果我们有一个size.txt文件内容如下,我们排序往后可以得到按照大小排序

[root@dongjing sort]# cat size.txt2G30K9M300B30K22M

排序

[root@dongjing sort]# sort -h size.txt300B30K30K9M22M2G

3.3 排序去重

通过3.2我们看到size.txt文件中30K这个有重复,我们能不能排序的时候就把重复行进行去重呢。
可以通过 -u 选项来完成。

[root@dongjing sort]# sort -hu size.txt300B30K9M22M2G

把稳: 这里-h 一定要加的,担保按照数字排序。

3.4 倒序(翻转排序)

我们要将size.txt按照从大到小的顺序排序,怎么实现呢?可以利用-r 翻转原来排序的顺序,原来是从小到大,翻转往后便是从大到小了呢。

[root@dongjing sort]# sort -hr size.txt2G22M9M30K30K300B

3.5 保存排序往后的内容到文件中

将size.txt排序往后的结果保存的size_sorted.txt 文件中。

保存成文件我们可以利用 > 来完成,也可以利用-o 选项后面跟文件名来完成。

一、 利用> 完成保存

sort -h size.txt > size_sorted.txt

二、 利用-o 选项完成

[root@dongjing sort]# sort -h -o size_sorted.txt size.txt

把稳: 运行完命令不会在屏幕上输出结果。
而是直接保存到文件中了。

[root@dongjing sort]# ll | grep size-rw-r--r-- 1 root root 23 Sep 16 10:34 size_sorted.txt-rw-r--r-- 1 root root 23 Sep 16 10:23 size.txt

3.6 数字排序

假设我们有一个名为number的文件,内容如下:

[root@dongjing sort]# cat number.txt22111110980

通过3.1我们已经知道sort默认是按照字典序排序,那么这里先试用sort排序看一下结果:

[root@dongjing sort]# sort number.txt09111112280

没有达到我们预期的效果,我们想要的是按照数字大小进行排序。
这里可以利用-n 或者 -g 都可以。

[root@dongjing sort]# sort -n number.txt09112280111[root@dongjing sort]#[root@dongjing sort]# sort -g number.txt09112280111

3.7 检讨是否有序

判断是否有序可以利用-c 选项实现

[root@dongjing sort]# sort -c number.txtsort: number.txt:2: disorder: 11 # 这里解释第一行的11不是有序的

先排序在检讨往后,创造没有给出提示,表示已经有序。

[root@dongjing sort]# sort number.txt | sort -c[root@dongjing sort]#

3.8 按照指定列(字段)排序

-k 按照指定的列排序,默认情形下每行按照空缺符(空格、制表符等)来分隔列,列的下标从1开始

如果我们有一个score.txt的文件内容如下(每行字段之间利用空格分隔), 每隔字段分别代表: 名称 科目 成绩

[root@dongjing sort]# cat score.txtTom Scala 30Tom Scala 30Tom Java 30aJack Python 95bJack Python 95Jack Spring 95Mike Java 95Linda Linux 85Linda PHP 66Linda Linux 85XY PHP 100XY Java 55Mike Scala 9SS Shell 99

需求:现在我们须要按照成绩由高分到低分排序(结果中不能涌现重复行) -- 本题目不关心科目。

[root@dongjing sort]# sort -u score.txt | sort -k3,3nrXY PHP 100SS Shell 99aJack Python 95bJack Python 95Jack Spring 95Mike Java 95Linda Linux 85Linda PHP 66XY Java 55Tom Java 30Tom Scala 30Mike Scala 9

把稳: 我们如果只须要按照第三行排序建议写成 -k3,3,而不要写成 -k3 。
由于-k3,3表示从第三列开始到第三列 结束,以是只包括第三列排序。
而-k3表示从第三列开始一贯到末了一列排序。
当然在本案例中写-k3,3 和 -k3结果都是一样的。

3.9 指定分隔符排序

默认情形下的分隔符为空缺符(空格、制表符等),利用-t 可以自定义指定分隔符。

如果我们有一个score.txt的文件内容如下(每行字段之间利用逗号分隔), 每隔字段分别代表: 名称 科目 成绩

[root@dongjing sort]# cat score.txtTom,Scala,30Tom,Scala,30Tom,Java,30aJack,Python,95bJack,Python,95Jack,Spring,95Mike,Java,95Linda,Linux,85Linda,PHP,66Linda,Linux,85XY,PHP,100XY,Java,55Mike,Scala,9SS,Shell,99

需求:将每科成绩按照从高分到低分排序,如果分数、科目都相同的话,按照名字降序排列。
(末了结果不能包含重复行)

[root@dongjing sort]# sort -u score.txt | sort -t \"大众,\"大众 -k2,2 -k3,3nr -k1,1rMike,Java,95XY,Java,55Tom,Java,30Linda,Linux,85XY,PHP,100Linda,PHP,66bJack,Python,95aJack,Python,95Tom,Scala,30Mike,Scala,9SS,Shell,99Jack,Spring,95

3.10 忽略头空格、忽略大小写排序

-b : 忽略头部空格 (默认)

-f : 将所有小写字母转换为大写字母比较

假如有一个test.txt的文件,内容如下:

[root@dongjing sort]# cat test.txtcomputermouseLAPTOP dataRedHat laptopdebianlaptop

需求1:忽略开头空缺排序

[root@dongjing sort]# sort -b test.txtcomputer datadebianlaptop laptopLAPTOPmouseRedHat[root@dongjing sort]# sort test.txtcomputer datadebianlaptop laptopLAPTOPmouseRedHat

可以不雅观察到不加-b 和加上结果是一样的。

需求2: 忽略大小写排序

[root@dongjing sort]# sort -f test.txt laptop datacomputerdebianLAPTOPlaptopmouseRedHat

可以不雅观察到:①开头带有空缺的排序到最前面了,这是由于 -f 会将每行所有的字符转换为大写,而空缺的大写还是其本身,以是在排序的时候就排到前面了 ② 不雅观察LAPTOP和laptop的位置可以看到我们忽略大小写已经有成效。

把稳: 利用-f 会冲破默认忽略头空缺排序的效果。

标签:

相关文章

介绍皮肤设置,如何打造理想肌肤状态

随着科技的发展和人们对美的追求,皮肤设置已成为美容护肤的重要一环。如何根据皮肤类型、肤质、年龄等因素进行合理设置,已成为众多爱美人...

网站建设 2025-01-03 阅读1 评论0

介绍盖章制作,传承文化,彰显权威

自古以来,盖章在我国文化中具有重要的地位。从古代的官印、私印到现代的公章、合同章,盖章已成为一种独特的文化符号,承载着丰富的历史内...

网站建设 2025-01-03 阅读1 评论0

介绍监控破坏,技术手段与法律风险并存

随着科技的飞速发展,监控设备已遍布大街小巷,成为维护社会治安的重要手段。一些不法分子为了逃避法律制裁,开始研究如何破坏监控设备。本...

网站建设 2025-01-03 阅读1 评论0

介绍登录不上之谜,技术故障还是人为疏忽

随着互联网的普及,登录已成为人们日常生活中不可或缺的一部分。在享受便捷的登录不上这一问题也困扰着许多用户。本文将深入剖析登录不上之...

网站建设 2025-01-03 阅读1 评论0

介绍电脑键盘调出方法,让操作更高效

随着科技的发展,电脑已经成为了我们日常生活中不可或缺的工具。而电脑键盘,作为电脑输入设备,更是我们与电脑进行交流的桥梁。你是否知道...

网站建设 2025-01-03 阅读1 评论0

介绍磁力链,高效便捷的文件下载利器

在互联网高速发展的今天,文件下载已成为日常生活中不可或缺的一部分。而磁力链作为一种新型的文件下载方式,凭借其高效、便捷的特点,受到...

网站建设 2025-01-03 阅读1 评论0