收集云服务器优惠信息
记录云服务器使用心得

Linux基础知识:7“Sort”排序命令示例详解(二)

在上一篇文章中,小编介绍了“ sort ”命令的各种典型示例。如果错过了,可以通过以下链接进行补看。在本文中,小编将从上一篇文章中停止的地方继续,介绍该命令的其它示例。这样,两篇文章将一起作为Linux“ sort ”命令的新手综合指南。

在继续之前,请创建一个名为“ month.txt ”的文本文件并使用下面提供的数据填充:

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15、按月份对文件内容进行排序

以下命令使用'-M'选项指示“ sort ”命令将数据视为日期并相应地排序,根据月份缩写或名称按时间顺序对文件“ month.txt ”的内容进行排序:

sort -M month.txt

按月份对文件内容进行排序

16、按人类可读格式的文件大小对输出进行排序

以下命令结合了“ ls ”和“ sort ”命令来执行两项任务。首先,它以长格式列出用户主目录的内容,然后将此目录列表通过管道传递给“sort”命令,以人类可读的格式输出文件大小,从而更容易识别目录中最大和最小的文件。

ls -l /home/$USER | sort -h -k5

按人类可读格式的文件大小对输出进行排序

17、检查排序文件的一致性

在上一篇文章中,我们生成了两个文本文件:示例4中的“ sorted.txt ”和示例6中的“ lsl.txt ”。其中“ sorted.txt ”已经排序,而“ lsl.txt ”没有。 为了验证两个文件的排序状态,将使用“ sort ”命令,这将允许我们确认“ sorted.txt ”是否保持正确的顺序以及“ lsl.txt ”是否需要排序:

sort -c sorted.txt

检查排序文件的一致性

如果返回0,则表示文件已排序且不存在冲突:

sort -c lsl.txt

检查排序文件的一致性

18、在文件中不使用空格时处理分隔符

如果单词之间的分隔符( separator ) 是空格,则“ sort ”命令会自动将水平空格之后的任何内容解释为新单词。但是当分隔符不是空格时会发生什么?

考虑一个文本文件,其内容由空格以外的任何内容分隔,例如'|''\''+''.'...</code.

创建一个文本文件,其中内容以+分隔。使用cat命令检查文件的内容:

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt

在文件中不使用空格时处理分隔符

现在根据第一个数字字段对该文件进行排序:

sort -t '+' -nk1 delimiter.txt

根据第一个数字字段对该文件进行排序

接下来基于第四个非数字字段排序,结果如下所示:

接下来基于第四个非数字字段排序

如果分隔符是制表符,你可以使用$'\t'代替'+',如上面的示例所示。

19、按文件大小随机排序输出

根据表示“数据量”的第五列,以随机顺序对主目录的ls -l命令的输出进行排序:

ls -l /home/avi/ | sort -k5 -R

按文件大小随机排序输出

每次运行上面的脚本时,可能会得到不同的结果,因为结果是随机生成的。

从上一篇文章的规则号–2可以清楚地看出,排序命令更喜欢以小写字符开头的行,而不是大写字符开头的行。另请查看上一篇文章中的示例3 ,其中字符串“ laptop ”出现在字符串“ LAPTOP ”之前。

20、覆盖默认排序首选项

如何覆盖默认排序首选项?在覆盖默认排序首选项之前,需要将环境变量导出'LC_ALL''C'。为此,请在命令行提示符下运行以下代码:

export LC_ALL=C

然后对文本文件“ tecmint.txt ”进行排序,覆盖默认排序首选项:

$ sort tecmint.txt

覆盖默认排序首选项

不要忘记将输出与示例3中实现的输出进行比较,并且你还可以使用 ‘ -f‘ 选项来获得组织良好的输出:

$ sort -f tecmint.txt

覆盖默认排序首选项

21、在单个操作中组合两个输入文件

对两个输入文件运行“sort”并一次性将它们连接起来怎么样?

让我们创建两个文本文件,即“ file1.txt ”和“ file2.txt ”,并用一些数据填充它们。在“ file1.txt ”中,将添加数字,如下所示。此外,还将使用cat命令来检查文件内容:

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

并用一些数据填充第二个文件“ file2.txt ”:

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

现在对两个文件的输出进行排序并连接。

join <(sort -n file1.txt) <(sort file2.txt)

在单个操作中组合两个输入文件

总结

总之,本文探讨了Linux 中“ sort ”命令的各个方面,从按字母顺序进行基本排序开始,开始尝试基于数字和日期的排序,甚至还涉及自定义分隔符。我们还学习了如何覆盖默认排序首选项以满足我们的需求。

此外,小编还介绍了检查文件是否已排序以及组合多个输入文件的“排序”操作的技术。借助此处获得的知识,你将拥有一个强大的工具,可以在 Linux 环境中有效地排序和组织数据。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux基础知识:7“Sort”排序命令示例详解(二)》
文章链接:https://www.ecscoupon.com/3119.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!