uniq 命令是 Linux 和 Unix 系统中的一个工具,用于报告或忽略文件中的重复行。通常,uniq 命令与 sort 命令一起使用,因为 uniq 只能识别相邻的重复行。以下是 uniq 命令的详细介绍,包括常用选项和示例。
基本用法
uniq [选项] [输入文件] [输出文件]
常用选项
-
-c
在每行前面加上出现的次数。
示例:uniq -c file.txt -
-d
仅显示重复的行。
示例:uniq -d file.txt -
-u
仅显示不重复的行。
示例:uniq -u file.txt -
-i
忽略大小写。
示例:uniq -i file.txt -
-f
忽略每行前N个字段。
示例:uniq -f 2 file.txt忽略每行前两个字段。 -
-s
忽略每行前N个字符。
示例:uniq -s 3 file.txt忽略每行前三个字符。 -
-w
只比较每行的前N个字符。
示例:uniq -w 5 file.txt只比较每行的前五个字符。 -
--help
显示帮助信息并退出。
示例
-
删除重复行
uniq file.txt -
统计每行出现的次数
uniq -c file.txt -
仅显示重复的行
uniq -d file.txt -
仅显示不重复的行
uniq -u file.txt -
忽略大小写
uniq -i file.txt -
忽略每行前两个字段
uniq -f 2 file.txt -
忽略每行前三个字符
uniq -s 3 file.txt -
只比较每行的前五个字符
uniq -w 5 file.txt -
将结果输出到另一个文件
uniq file.txt output.txt
与 sort 命令结合使用
由于 uniq 只能识别相邻的重复行,通常需要先对文件进行排序:
sort file.txt | uniq
高级用法
-
统计重复行的数量并排序
sort file.txt | uniq -c | sort -nr这将统计每行出现的次数,并按次数降序排序。
-
结合
awk进行复杂处理sort file.txt | uniq -c | awk '$1 > 1'这将只显示出现次数大于 1 的行。
实际应用场景
-
统计日志文件中的独特 IP 地址
sort access.log | uniq -
查找重复的配置项
sort config.txt | uniq -d -
过滤重复的用户输入
sort user_input.txt | uniq
通过这些选项和示例,你可以灵活地使用 uniq 命令来处理各种重复行的需求。如果你有特定的需求或遇到问题,欢迎继续提问。