sort命令使用说明
Posted liuzgg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sort命令使用说明相关的知识,希望对你有一定的参考价值。
1、命令概述
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
2、命令语法
sort 【选项】 【文件】
3、命令选项
-b:忽略每行前面开始出的空格字符
-c:检查文件是否已经按照顺序排序
-d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f:排序时,将小写字母视为大写字母
-g:按通用数值排序,支持科学计数法
-i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m:将几个排序号的文件进行合并
-M:将前面3个字母依照月份的缩写进行排序
-n:依照数值的大小排序
-o <输出文件>:将排序后的结果存入制定的文件
-r:以相反的顺序来排序,
-k:指定需要排序的栏位
-t <分隔字符>:指定排序时所用的栏位分隔字符
-u:去除重复的行
4、命令示例
4.1 sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出:
1 [root@lzg ~]# cat a.txt 2 5 3 11 4 1 5 156 6 11 7 23 8 156 9 256 10 [root@lzg ~]# sort a.txt 11 1 12 11 13 11 14 156 15 156 16 23 17 256 18 5 19 [root@lzg ~]# cat b.txt 20 aaa:30:1.6 21 bbb:10:2.5 22 ccc:50:3.3 23 ddd:20:4.2 24 bbb:10:2.5 25 eee:80:5.4 26 eee:60:5.1 27 [root@lzg ~]# sort b.txt 28 aaa:30:1.6 29 bbb:10:2.5 30 bbb:10:2.5 31 ccc:50:3.3 32 ddd:20:4.2 33 eee:60:5.1 34 eee:80:5.4 35 [root@lzg ~]#
4.2 忽略相同行使用-u选项或者uniq:
1 [root@lzg ~]# sort a.txt 2 1 3 11 4 11 5 156 6 156 7 23 8 256 9 5 10 [root@lzg ~]# sort -u a.txt 11 1 12 11 13 156 14 23 15 256 16 5 17 [root@lzg ~]# sort b.txt 18 aaa:30:1.6 19 bbb:10:2.5 20 bbb:10:2.5 21 ccc:50:3.3 22 ddd:20:4.2 23 eee:60:5.1 24 eee:80:5.4 25 [root@lzg ~]# sort -u b.txt 26 aaa:30:1.6 27 bbb:10:2.5 28 ccc:50:3.3 29 ddd:20:4.2 30 eee:60:5.1 31 eee:80:5.4 32 [root@lzg ~]#
或者使用uniq:
1 [root@lzg ~]# sort a.txt 2 1 3 11 4 11 5 156 6 156 7 23 8 256 9 5 10 [root@lzg ~]# sort a.txt | uniq 11 1 12 11 13 156 14 23 15 256 16 5 17 [root@lzg ~]# sort b.txt 18 aaa:30:1.6 19 bbb:10:2.5 20 bbb:10:2.5 21 ccc:50:3.3 22 ddd:20:4.2 23 eee:60:5.1 24 eee:80:5.4 25 [root@lzg ~]# sort b.txt | uniq 26 aaa:30:1.6 27 bbb:10:2.5 28 ccc:50:3.3 29 ddd:20:4.2 30 eee:60:5.1 31 eee:80:5.4 32 [root@lzg ~]#
4.3 -n 依照数值的大小顺序排列:
1 [root@lzg ~]# cat a.txt 2 5 3 11 4 1 5 156 6 11 7 23 8 156 9 256 10 [root@lzg ~]# sort -n a.txt 11 1 12 5 13 11 14 11 15 23 16 156 17 156 18 256 19 [root@lzg ~]# cat b.txt 20 aaa:30:1.6 21 bbb:10:2.5 22 ccc:50:3.3 23 ddd:20:4.2 24 bbb:10:2.5 25 eee:80:5.4 26 eee:60:5.1 27 [root@lzg ~]# sort -n b.txt 28 aaa:30:1.6 29 bbb:10:2.5 30 bbb:10:2.5 31 ccc:50:3.3 32 ddd:20:4.2 33 eee:60:5.1 34 eee:80:5.4 35 [root@lzg ~]#
4.4 sort的-n、-r、-k、-t选项的使用:
1 [root@lzg ~]# cat b.txt 2 aaa:30:1.6 3 bbb:10:2.5 4 ccc:50:3.3 5 ddd:20:4.2 6 bbb:10:2.5 7 eee:80:5.4 8 eee:60:5.1 9 [root@lzg ~]# sort -n -k2 -t: b.txt 10 bbb:10:2.5 11 bbb:10:2.5 12 ddd:20:4.2 13 aaa:30:1.6 14 ccc:50:3.3 15 eee:60:5.1 16 eee:80:5.4 17 [root@lzg ~]# sort -nr -k3 -t: b.txt 18 eee:80:5.4 19 eee:60:5.1 20 ddd:20:4.2 21 ccc:50:3.3 22 bbb:10:2.5 23 bbb:10:2.5 24 aaa:30:1.6 25 [root@lzg ~]#
#-n是按照数字大小排序,-r是以相反顺序,-k是指定需要排序的栏位,-t指定栏位分隔符为冒号
4.5
以上是关于sort命令使用说明的主要内容,如果未能解决你的问题,请参考以下文章