6.linux每日一个命令@sort

1.sort

Linux sort 命令用于将文本文件内容加以排序。
sort 可针对文本文件的内容,以行为单位来排序。

2. 语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]

3.参数说明

-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。 #有序不返回结果,无序返回错误结果。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
--help 显示帮助。
--version 显示版本信息。
[-k field1[,field2]] 按指定的列进行排序。

4. 实例

4.1  练习文本 . cat job.txt

[root@ecs-76840553 sed]# cat job.txt 
tom 77 boy
haol 88 girl 
tom 77 boy
jaol 88 girl
hihi 99 boy
Tom 77 boy
vivi 66 girl

4.2 默认文本输出。 sort  文件名

[root@ecs-76840553 sed]# sort job.txt 
Tom 77 boy
haol 88 girl 
hihi 99 boy
jaol 88 girl
tom 77 boy
tom 77 boy
vivi 66 girl
[root@ecs-76840553 sed]# 

默认按第一个字母开始排序,ascii码排序

4.3 去重。-u 意味着是唯一的(unique)

[root@ecs-76840553 sed]# sort -u job.txt 
Tom 77 boy
haol 88 girl 
hihi 99 boy
jaol 88 girl
tom 77 boy
vivi 66 girl
[root@ecs-76840553 sed]# 

4.4 将小写字母按照大写字母排序 。-f 排序时,将小写字母视为大写字母

[root@ecs-76840553 sed]# sort -f job.txt 
haol 88 girl 
hihi 99 boy
jaol 88 girl
Tom 77 boy
tom 77 boy
tom 77 boy
vivi 66 girl
[root@ecs-76840553 sed]# 

4.5 以第二,第三列排序

[root@ecs-76840553 sed]# sort  job.txt  -k 2 -k 3
vivi 66 girl
Tom 77 boy
tom 77 boy
tom 77 boy
jaol 88 girl
haol 88 girl 
hihi 99 boy
[root@ecs-76840553 sed]# 

4.6 依照数值的大小排序 -n

[root@ecs-76840553 sed]# sort -n job.txt 
Tom 77 boy
haol 88 girl 
hihi 99 boy
jaol 88 girl
tom 77 boy
tom 77 boy
ton 77 boy
vivi 66 girl

 

posted @ 2022-09-05 10:44  家乐福的搬砖日常  阅读(50)  评论(0编辑  收藏  举报