linux下面sort的使用

来源:互联网 发布:在手机淘宝怎么删评价 编辑:程序博客网 时间:2024/06/07 08:02

核心
sort的介绍和使用

sort 它将文件进行排序,并将排序的结果标准输出,sort命令既可以从特定的文件,也可以从
stdin中获取输入
语法
sort 选项 参数

-b 忽略每行前面开始处的空格符
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-M 将前面3个字母依照月份的缩写进行排序
-n 按照数值的大小排序
-r 以相反的顺序来排序
-c 检查文件是否已经按照顺序排序
-m 将几个排序号的文件进行合并
-o<输出文件> 将排序后的结果存入指定的文件
-t<分隔字符> 指定排序是所有的分隔字符
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位

参数
文件:指定待排序的文件列表

实例
sort 将文件/文本的每一行作为一个单位,相互比较,比较的原则是从首字符向后,依次按ASCII码
值进行比较,最后将他们按升序输出

[root@SZB-L0032013 sort]# cat sort.txt aaa:11ccc:33bbb:22eee:55ddd:44eee:55[root@SZB-L0032013 sort]# sort sort.txt aaa:11bbb:22ccc:33ddd:44eee:55eee:55

忽略相同行使用-u 或者uniq

[root@SZB-L0032013 sort]# cat sort.txt aaa:11ccc:33bbb:22eee:55ddd:44eee:55[root@SZB-L0032013 sort]# sort -u sort.txt aaa:11bbb:22ccc:33ddd:44eee:55[root@SZB-L0032013 sort]# uniq sort.txt aaa:11ccc:33bbb:22eee:55ddd:44eee:55[root@SZB-L0032013 sort]# sort sort.txt |uniqaaa:11bbb:22ccc:33ddd:44eee:55

sort的-n、-r、-k、-t选项的使用

[root@SZB-L0032013 sort]# cat sort.txt aaa:11ccc:33bbb:22eee:55ddd:44eee:55#按照第二列数字从小到大顺序排序[root@SZB-L0032013 sort]# sort -nk 2 -t: sort.txt aaa:11bbb:22ccc:33ddd:44eee:55eee:55#按照第二列数字从大到小顺序排序[root@SZB-L0032013 sort]# sort -nrk 2 -t: sort.txt eee:55eee:55ddd:44ccc:33bbb:22aaa:11#-n是按照数字大小排序 -r是以相反顺序 -k是指定需要排序的列 -t指定分隔符

-k选项
-k选项的语法格式
FStart.CStart Modifie,FEnd.CEnd Modifier
——-Start——–,——-End——–
FStart.CStart 选项 , FEnd.CEnd 选项

[root@SZB-L0032013 sort]# cat ksort.txt abcd:1234acde:2222aecd:3333dace:4444deac:5555[root@SZB-L0032013 sort]# sort -k 1.2 -t: ksort.txt dace:4444abcd:1234acde:2222deac:5555aecd:3333

-k 1.2表示 第一列的第二个字符开始比较从小到大一直比较到这个列的最后一个字符

[root@SZB-L0032013 sort]# sort -k 1.2,1.2 -nk 2,2 -t: ksort.txt abcd:1234acde:2222aecd:3333dace:4444deac:5555

-k 1.2,1.2 表示按照第一列的第二个字符开始比较 截止到第一列第二个字符结束
-nk 2,2 在根据第二列按照数值升序排序

0 0
原创粉丝点击