目录
一、概述
二、基本用法
1、uniq 命令的基本语法
2、常用选项
3、获取帮助
三、主要功能
1. 识别并删除相邻重复行
2. 保留重复行的第一个实例
3. 统计重复次数
4. 忽略指定列的比较
四、示例
1. 删除相邻重复行
2. 显示每一行及其重复次数
3. 只显示重复行
4. 只显示唯一行
5. 忽略每行开头的 1 个字段
6. 比较时忽略每行的前 3 个字符
7. 忽略每行的前 2 列
五、实际应用场景
1、数据清洗
2、统计分析
3、脚本开发
六、其他
一、概述
uniq 是 Linux 和 Unix 系统中一个非常有用的命令行工具,主要用于处理文本文件中的重复行。它可以识别相邻的重复行,并根据需要保留或删除这些重复行。
二、基本用法
1、uniq 命令的基本语法
uniq 命令的基本语法如下:
uniq [OPTION]... [INPUT [OUTPUT]]
如果不指定输入文件,则默认从标准输入(stdin)读取数据。
(1) input-file 是要处理的输入文件名。如果未指定,uniq 将从标准输入读取数据。
(2)output-file 是输出文件的名称。如果未指定,uniq 将把结果输出到标准输出。
2、常用选项
(1). -c:
- 显示每一行及其重复次数。
- 示例:
uniq -c input_file
(2). -d:
- 只显示重复行。
- 示例:
uniq -d input_file
(3). -u:
- 只显示唯一行(即不重复的行)。
- 示例:
uniq -u input_file
(4). -f N:
- 忽略每行开头的 N 个字段。
- 示例:
uniq -f 1 input_file
(5). -w N:
- 比较时忽略每行的前 N 字符。
- 示例:
uniq -w 3 input_file
(6). -n N:
- 指定忽略每行的前 N 列(适用于固定宽度的列)。
- 示例:
uniq -n 2 input_file
3、获取帮助
输入如下命令:
uniq –h
出现如下图所示的帮助信息:
三、主要功能
1. 识别并删除相邻重复行
- uniq 默认会删除连续的重复行,只保留一个实例。
2. 保留重复行的第一个实例
- 如果需要保留第一个重复行,uniq 会保留第一次出现的行,并删除后续的重复行。
3. 统计重复次数
- 可以输出每一行及其重复次数。
4. 忽略指定列的比较
- 可以指定忽略某些列来进行比较,这对于某些特定的文本处理非常有用。
四、示例
假设有一个名为 input.txt 的文件,内容如下:
apple
banana
apple
cherry
apple
date
1. 删除相邻重复行
sort input.txt | uniq > output.txt
输出结果(output.txt):
apple
banana
cherry
date
实际操作结果如下:
2. 显示每一行及其重复次数
sort input.txt | uniq -c
输出结果:
1 banana
1 cherry
1 date
3 apple
实际操作结果如下:
3. 只显示重复行
sort input.txt | uniq -d
输出结果:
apple
实际操作结果如下:
4. 只显示唯一行
sort input.txt | uniq -u
输出结果:
banana
cherry
date
实际操作结果如下:
5. 忽略每行开头的 1 个字段
假设每行由空格分隔的多个字段组成:
cat input.txt | uniq -f 1
6. 比较时忽略每行的前 3 个字符
cat input.txt | uniq -w 3
7. 忽略每行的前 2 列
假设每行由固定宽度的两列组成:
cat input.txt | uniq -n 2
五、实际应用场景
uniq 命令在很多场景下都非常有用,比如:
1、数据清洗
去除文本文件中的重复记录。
2、统计分析
统计文本文件中各条目的出现次数。
3、脚本开发
配合其他命令行工具(如 grep、sort、awk 等)进行文本处理。
六、其他
1、uniq 命令只能识别连续出现的重复行,因此通常与 sort 命令结合使用。
2、默认情况下,uniq 区分大小写。
3、使用 -c、-d、-D、-u 等选项时,可以根据需要选择性地显示重复行、不重复行或它们的计数。
uniq 是一个功能强大的命令行工具,用于处理文本文件中的重复行。通过灵活运用各种选项,可以实现多种文本处理任务。理解 uniq 的工作原理和使用方法,可以帮助技术人员在日常工作中更加高效地处理文本数据。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。