# uniq 命令
uniq
命令用于检查和删除文本文件中的重复行。它通常与 sort
命令结合使用,因为 uniq
只能检测相邻的重复行。
# 语法
uniq [选项] [输入文件 [输出文件]]
# 常用选项
-c
: 在每行前显示重复次数-d
: 仅显示重复的行-u
: 仅显示不重复的行-i
: 忽略大小写-f N
: 忽略前N个字段-s N
: 忽略前N个字符
# 使用示例
# 基本用法
# 删除重复行
sort file.txt | uniq
# 显示重复次数
sort file.txt | uniq -c
# 只显示重复的行
sort file.txt | uniq -d
# 高级用法
# 忽略大小写
sort file.txt | uniq -i
# 忽略每行前3个字段
uniq -f 3 file.txt
# 忽略每行开头的5个字符
uniq -s 5 file.txt
# 统计分析
# 统计每行出现的次数并排序
sort file.txt | uniq -c | sort -nr
# 找出最常出现的行
sort file.txt | uniq -c | sort -nr | head
# 实际应用场景
- 日志分析:统计独特的日志条目
- 数据清理:移除重复数据
- 文本处理:查找重复内容
- 系统管理:分析系统日志中的重复事件
# 注意事项
- uniq 命令只能检测相邻的重复行,因此通常需要先使用 sort 命令
- 在处理大文件时要注意内存使用
- 确保输入文件的编码格式正确
- 使用 -c 选项可能会影响后续处理的格式