运维工作经常会处理目录或文本的输出问题,命令行模式的显示不像图形化那么人性化,所以基本的排序命令会让你在处理问题是更舒服,还能降低出错率,今天主要介绍sort与uniq。
##################################################################
sort命令:
sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
语法:
sort :排序
默认的情况下是按照字符排序
-n : 按照数值排序
-u : 不出现重复的行
-r : 逆向排序
-t : 指定分段的符号
-k : 指定的第几个段
sort可以直接查看文件,也可以通过管道,将前面的输出当sort的源,去对想要处理的目标排序。基本的排序都很简单,下面举例说下 -t 与 -k 参数的组合使用。
# cat sort.txt #查看下我的实例文件
a 34234sdfs fsdfsdf z231345456 923131
x asdafdf 12313asd a213dsfsdfs 453535
h dsfsfsdf sfa3255 b3asdafgadg 236456
o dsdfs123 23454 g4sdfdsa133 353535
# cat sort.txt | sort -t " " -k 4 #对其排序,-t指定空格为定界符,-k 指定四个字段
x asdafdf 12313asd a213dsfsdfs 453535
h dsfsfsdf sfa3255 b3asdafgadg 236456
o dsdfs123 23454 g4sdfdsa133 353535
a 34234sdfs fsdfsdf z231345456 923131
#####################################################################
unip命令:
与sort的机制类似。
语法
uniq 相当于sort -u
sort | uniq=sort -u
uniq -u 只显示不重复的行
-d 只显示重复的行
-c 显示出现的几次
举例说明:
# cat sort.txt #查看文件
a 34234sdfs fsdfsdf z231345456 923131
x asdafdf 12313asd a213dsfsdfs 453535
x asdafdf 12313asd a213dsfsdfs 453535
x asdafdf 12313asd a213dsfsdfs 453535
x asdafdf 12313asd a213dsfsdfs 453535
x asdafdf 12313asd a213dsfsdfs 453535
a 34234sdfs fsdfsdf z231345456 923131
h dsfsfsdf sfa3255 b3asdafgadg 236456
o dsdfs123 23454 g4sdfdsa133 353535
o dsdfs123 23454 g4sdfdsa133 353535
# cat sort.txt | uniq #去除重复行
a 34234sdfs fsdfsdf z231345456 923131
x asdafdf 12313asd a213dsfsdfs 453535
a 34234sdfs fsdfsdf z231345456 923131
h dsfsfsdf sfa3255 b3asdafgadg 236456
o dsdfs123 23454 g4sdfdsa133 353535
-bash-3.2# cat sort.txt | uniq -c #显示重复出现的行的次数
1 a 34234sdfs fsdfsdf z231345456 923131
5 x asdafdf 12313asd a213dsfsdfs 453535
1 a 34234sdfs fsdfsdf z231345456 923131
1 h dsfsfsdf sfa3255 b3asdafgadg 236456
2 o dsdfs123 23454 g4sdfdsa133 353535
转载于:https://blog.51cto.com/linuxmylife/962322