# 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

# 实际应用场景

  1. 日志分析:统计独特的日志条目
  2. 数据清理:移除重复数据
  3. 文本处理:查找重复内容
  4. 系统管理:分析系统日志中的重复事件

# 注意事项

  1. uniq 命令只能检测相邻的重复行,因此通常需要先使用 sort 命令
  2. 在处理大文件时要注意内存使用
  3. 确保输入文件的编码格式正确
  4. 使用 -c 选项可能会影响后续处理的格式