Linux 的 'sort'命令的七个有趣实例(二)
在上一篇文章里,我们已经探讨了关于sort命令的多个例子,如果你错过了这篇文章,可以点击下面的链接进行阅读。今天的这篇文章作为上一篇文章的继续,将讨论关于sort命令的剩余用法,与上一篇一起作为Linux ‘sort’命令的完整指南。
Linux 的 ‘sort’命令的14个有用的范例(一)在我们继续深入之前,先创建一个文本文档‘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代表千、兆、吉、梯。 (LCTT 译注:此处命令有误,ls 命令应该增加 -h 参数,径改之)
$ ls -lh /home/$USER | sort -h -k5
Sort Content Human Readable Format
17、 在上一篇文章中,我们在例子4中创建了一个名为‘sorted.txt’的文件,在例子6中创建了一个‘lsl.txt’。‘sorted.txt已经排好序了而’lsl.txt‘还没有。让我们使用sort命令来检查两个文件是否已经排好序。
$ sort -c sorted.txt
Check File is Sorted
如果它返回0,则表示文件已经排好序。
$ sort -c lsl.txt
Check File Sorted Status
报告无序。存在矛盾……
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
如果分隔符是制表符,你需要在’+‘的位置上用$’\t’代替,如上例所示。
19、 对主用户目录下使用‘ls -l’命令得到的结果基于第五列(‘文件大小’)进行一个乱序排列。
$ ls -l /home/avi/ | sort -k5 -R
Sort Content by Column in Random Order
每一次你运行上面的脚本,你得到结果可能都不一样,因为结果是随机生成的。
正如我在上一篇文章中提到的规则2所说——sort命令会将以小写字母开始的行排在大写字母开始的行前面。看一下上一篇文章的例3,字符串‘laptop’在‘LAPTOP’前出现。
20、 如何覆盖默认的排序优先权?在这之前我们需要先将环境变量LC_ALL的值设置为C。在命令行提示栏中运行下面的代码。
$ export LC_ALL=C
然后以非默认优先权的方式对‘tecmint.txt’文件重新排序。
$ sort tecmint.txt
覆盖排序优先权
不要忘记与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
我所要讲的全部内容就在这里了,希望与各位保持联系,也希望各位经常来逛逛。有反馈就在下面评论吧。
原文发布时间:2015-05-04
本文来自云栖合作伙伴“linux中国”
1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。 [rocrocket@rocrocket programming]$ cat seq.txt banana apple orange [rocrocket@rocrocket programming]$ sort seq.txt apple banana orange 2 sort的-u选项 它的作用很简单,就是在输出行中去除重复行。
Linux sort命令案例详解 Linux sort命令案例详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
相关文章
- 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办
- 【Linux】linux常用查看命令
- 【网址收藏】linux wget 命令常用参数用法详解(附实例说明)
- L82.linux命令每日一练 -- 第11章 Linux系统管理命令 -- dmidecode和lspci
- L78.linux命令每日一练 -- 第11章 Linux系统管理命令 -- iostat和iotop
- L77.linux命令每日一练 -- 第11章 Linux系统管理命令 -- vmstat和mpstat
- L76.linux命令每日一练 -- 第11章 Linux系统管理命令 -- free和iftop
- L62.linux命令每日一练 -- 第九章 Linux进程管理命令 -- strace和ltrace
- L56.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- swapoff和sync
- L51.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- mkfs和dumpe2fs
- L48.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- last、lastb和lastlog
- L44.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- su和visudo
- L43.linux命令每日一练 -- 第七章 Linux用户管理及用户信息查询命令 -- chage和chpasswd
- L36.linux命令每日一练 -- 第五章 Linux信息显示与搜索文件命令 -- locate和updatedb
- L3.linux命令每日一练 -- 第一章 Linux命令行简介
- 嵌入式Linux开发,Ubuntu22下交叉编译报错:make[1]: aarch64-linux-gnu-gcc: No such file or directory
- Linux每次登录时自动执行
- 【linux】Linux操作系统常用指令大全