【linux】文件与目录命令 - uniq
文章目录
- 1. 基本用法
- 2. 常用参数
- 3. 用法举例
- 4. 注意事项
uniq
命令用于过滤文本文件中相邻的重复行,并支持统计重复次数或仅保留唯一行。它通常与
sort
命令配合使用,因为
uniq
只识别相邻的重复行。
1. 基本用法
-
语法:
uniq [选项] [输入文件] [输出文件]
-
功能:
- 从文本中去除相邻的重复行。
- 统计重复行的次数或保留唯一行。
-
此命令是否系统自带:此命令是系统默认自带的,无需额外安装。
2. 常用参数
- 基本功能:
-c
:在每行前显示重复的次数。-d
:仅显示重复的行。-u
:仅显示不重复的行。
- 输出控制:
-i
:忽略大小写比较。-f N
:忽略每行的前N
个字段(以空格分隔)。-s N
:忽略每行的前N
个字符。-z
:用空字符而不是换行符分隔行(适用于某些特殊文件)。
- 辅助选项:
--help
:显示帮助信息。--version
:显示命令版本信息。
3. 用法举例
-
去除重复行:
从文件中删除相邻的重复行:uniq file.txt
-
统计重复行的次数:
在每行前添加重复次数:uniq -c file.txt
-
仅显示重复的行:
uniq -d file.txt
-
仅显示不重复的行:
uniq -u file.txt
-
忽略大小写:
忽略大小写,删除重复行:uniq -i file.txt
-
结合 sort 使用:
对非相邻重复行去重:sort file.txt | uniq
-
忽略字段或字符:
忽略每行前 2 个字段进行比较:uniq -f 2 file.txt
忽略每行前 3 个字符进行比较:
uniq -s 3 file.txt
-
输出到文件:
去重后将结果输出到新文件:uniq file.txt output.txt
4. 注意事项
uniq
只处理相邻的重复行,因此文件需要先用sort
排序以确保重复行相邻。-c
和-d
参数通常结合sort
使用,以便统计所有重复行。- 忽略字段或字符时,必须正确理解分隔方式,默认以空格为字段分隔符。
- 如果文件中存在空字符行,使用
-z
参数以适应特殊需求。