linux命令中的uniq和sort

uniq

作用: 去重
语法: uniq (选项) (参数)

选项

-c 或 --count: 在每列旁边显示重复出现的次数
-d 或 --repeated: 仅显示重复出现的行列
-u 或 --unique: 仅显示出一次的行列
-s<字符位置> 或 --skip-chars=<字符位置>: 忽略指定字符
-w<字符位置> 或 --check-chars=<字符位置>: 指定要比较的字符   

参数

输入文件: 指定要去除的重复行文件, 不指定则从标准流读取文件
输出文件: 指定去除重复行后的内容, 写入的文件, 不指定则输出到终端

sort

作用: 排序
语法: sort (选项) (参数)

选项

-b: 忽略每行前边开始出现的空格符
-c: 检查是否已经按照顺序排序
-n: 按照数值的大小排序
-f: 排序时, 将小写字母视为大写字母
-d: 排序时, 只处理英文字母,数字,和空格字符
-i: 排序时, 只处理ascii码040-176之间的字符
-o<输出文件>: 将排序后结果输出到文件
-r: 反序
-t<分隔符>: 指定排序时用的分隔符
+<起始栏位>-<结束栏位>: 以指定的排序范围 

参数

文件: 指定排序的文件列表

示例

cat log |awk -F'|' '{print $3}'|sort|uniq -c|sort -nr|head -5

"""
1. 查看log
2. 使用awk工具, 指定分隔符为'|', 输出第三段
3. <2>作为sort的输出进行排序
4. <3>作为uniq的输入进行去重, -c参数显示重复数量
5. <4>作为sort的输入进行排序, -nr指定按照重复数量进行排序, 并且反序
6. <5>作为head的输入, 输出前5条数据
"""

猜你喜欢

转载自blog.csdn.net/yang_kaiyue/article/details/82381101