TranslateProject/translated/tech/20150420 7 Interesting Linux 'sort' Command Examples--Part 2.md
2015-04-24 15:26:12 +08:00

6.2 KiB
Raw Blame History

Linux 'sort'命令的七个有趣实例-第二部分

在上一篇文章里我们已经探讨了关于sort命令的多个例子如果你错过了这篇文章可以点击下面的链接进行阅读。今天的这篇文章作为上一篇文章的继续将讨论关于sort命令的剩余用法与上一篇一起作为Linux sort命令的完整指南。

注:前两天做过这个原文

在我们继续深入之前先创建一个文本文档month.txt并且将上一次给出的数据填进去。

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

Populate Content

15. 通过使用M选项month.txt文件按照月份顺序进行排序。###

$ sort -M month.txt

注意:sort命令需要至少3个字符来确认月份名称。

Sort File Content by Month in Linux

16. 把数据整理成方便人们阅读的形式比如1K、2M、3G、2T这里面的K、G、M、T代表千、兆、吉、梯。

译者注好像这个选项并不是所有Linu版本都有而且也没有实现按KMGT显示。

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

Sort Content Human Readable Format

17. 在上一篇文章中我们在例子4中创建了一个名为sorted.txt的文件在例子6中创建了一个lsl.txtsorted.txt'已经排好序了而lsl.txt还没有。让我们使用sort命令来检查两个文件是否已经排好序。###

$ sort -c sorted.txt

Check File is Sorted

如果它返回0则表示文件已经排好序。

$ sort -c lsl.txt

Check File Sorted Status

Reports Disorder. Conflict.. 报告无序。存在矛盾……

18. 如果文字之间的分隔符是空格sort命令自动地将横向空格后的东西当做一个新文字单元如果分隔符不是空格呢###

考虑这样一个文本文件,里面的内容可以由除了空格之外的任何符号分隔,比如‘|\+.’等……

创建一个分隔符为+的文本文件。使用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

Check File Content by Delimiter

现在基于由数字组成的第一个域来进行排序。

$ sort -t '+' -nk1 delimiter.txt

Sort File By Fields

然后再基于非数字的第四个域排序。

Sort Content By Non Numeric

如果分隔符是Tab你需要在+‘的位置上用$\t代替如上例所示。

19. 对主用户目录下使用ls -l命令得到的结果基于第五列——数据的大小进行一个乱序排列。

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

Sort Content by Column in Random Order

每一次你运行上面的脚本,你得到结果可能都不一样,因为结果是随机生成的。

正如我在上一篇文章中提到的规则2所说——相比于大写字母sort命令更喜欢以小写字母开始的行。看一下上一篇文章的例3字符串laptopLAPTOP前出现。

20. 如何覆盖默认的排序优先权在这之前我们需要先将环境变量LC_ALL的值设置为C。在命令行提示栏中运行下面的代码。###

$ export LC_ALL=C

然后以重写默认优先权的方式对tecmint.txt文件重新排序。

$ sort tecmint.txt

Override Sorting Preferences 重写排序优先权

不要忘记与example 3中得到的输出结果做比较并且你可以使用-f选项又叫-ignore-case来获取非常有序的输出。

$ sort -f tecmint.txt

Compare Sorting Preferences

21. 给两个输入文件进行sort然后一口气把它们连接起来怎么样###

我们创建两个文本文档file1.txt以及file2.txt并用数据填充如下所示并用cat命令查看文件的内容。 $ echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt $ cat file1.txt

Populate Content with Numbers

用如下数据填充file2.txt

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

Populate File with Data

现在我们对两个文件进行排序并连接。

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

Sort Join Two Files

我所要讲的全部内容就在这里了希望与各位保持联系也希望各位经常来Tecmint逛逛。有反馈就在下面评论吧。


via: http://www.tecmint.com/linux-sort-command-examples/

作者:Avishek Kumar 译者:DongShuaike 校对:校对者ID

本文由 LCTT 原创翻译,Linux中国 荣誉推出