在 Linux 系统中,尤其是 Debian 及其衍生发行版(如 Ubuntu)中,处理文本文件是日常运维和开发中的常见任务。而 uniq 命令 正是一个非常实用的工具,用于对已排序的文本进行去重和计数统计。本文将手把手教你如何使用 uniq 命令,即使你是 Linux 小白也能轻松上手!
什么是 uniq 命令?
uniq 是一个标准的 Unix/Linux 命令行工具,主要用于过滤相邻的重复行。注意:它只能去除连续重复的行,因此通常需要先用 sort
命令对文件排序,再使用 uniq
。
基本语法
uniq [选项] [输入文件] [输出文件]
常用选项说明
-c或
--count:在每行前显示该行出现的次数(最常用!)
-d或
--repeated:仅显示重复出现的行(至少出现两次)
-u或
--unique:仅显示只出现一次的行
-i:忽略大小写比较
实战示例
1. 准备测试文件
我们先创建一个包含重复行的文本文件
fruits.txt:
echo -e "apple\nbanana\napple\norange\nbanana\napple" > fruits.txt
查看内容:
cat fruits.txt
输出:
applebananaappleorangebananaapple
2. 直接使用 uniq(注意:未排序!)
uniq fruits.txt
输出:
applebananaappleorangebananaapple
可以看到,
uniq没有去重成功!因为重复的
apple不是连续的。
3. 先排序再使用 uniq(正确做法)
sort fruits.txt | uniq
输出:
applebananaorange
现在成功去重了!这是使用
uniq的标准流程。
4. 使用 -c 选项进行计数统计
sort fruits.txt | uniq -c
输出:
3 apple 2 banana 1 orange
左边数字表示该行在原始文件中出现的次数。这就是 行计数统计 的典型应用!
5. 仅显示重复行(-d)或唯一行(-u)
# 显示重复行sort fruits.txt | uniq -d# 显示唯一行(只出现一次的)sort fruits.txt | uniq -u
输出分别是:
# uniq -d 输出applebanana# uniq -u 输出orange
常见误区提醒
❌ uniq 不能直接去除非连续重复行 —— 必须配合sort使用。 ✅ 正确流程:
sort file | uniq [选项]???? 如果你只想去重而不关心顺序,也可以用
sort -u file,这是 sort 自带的去重功能。
总结
通过本教程,你已经掌握了在 Debian 系统中使用 uniq 命令 进行 文本去重 和 行计数统计 的核心技巧。记住关键点:先排序,再去重!无论是日志分析、数据清洗还是日常脚本编写,
uniq都是一个高效且不可或缺的工具。
希望这篇 Linux命令行教程 对你有所帮助。快打开终端,动手试试吧!
关键词:Debian uniq命令、文本去重、行计数统计、Linux命令行教程
