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