在 Linux 文本处理工具链里,有几个命令几乎是“标配”:sort(排序)
grep(过滤)
awk(字段处理)
uniq(去重)
如果你做过日志分析、数据清洗、统计频次,那么 uniq 一定用得上。一、uniq 是干什么的?
二、最基础用法
apple
apple
banana
banana
banana
orange
三、重要前提:通常要配合 sort
apple
banana
apple
banana
四、统计重复次数(最常用)
2 apple
3 banana
1 orange
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr
五、只显示重复行
apple
banana
六、只显示不重复行
七、忽略大小写
Apple
apple
APPLE
八、按字段去重
100 Tom
101 Tom
102 Jack
sort data.txt -k2 | uniq -f 1
九、实际运维场景
awk '{print $1}' access.log | sort | uniq -c | sort -nr
grep ERROR app.log | sort | uniq -c
十、uniq 的底层逻辑
逐行读取
与上一行比较
相同则合并
十一、常见参数总结
掌握 -c 和 -d 基本可以应对 80% 场景。十二、uniq vs sort -u
不过如果你需要统计次数,必须使用 uniq -c。总结
它处理的是“相邻重复”,通常要配合 sort 使用在 Linux 文本处理体系中,uniq 属于:小而精,但极具实战价值的工具。如果你正在学习 Linux 运维或数据处理,uniq 是必须掌握的一环。