当前位置:首页 > Centos > 正文

Centos uniq命令详解(去重与计数实战教程)

在 Linux 系统中,尤其是 Centos 环境下,处理文本文件是系统管理员和开发人员的日常任务之一。其中,uniq 命令是一个非常实用的工具,用于对已排序的文本进行去重计数操作。本文将手把手教你如何使用 uniq 命令,即使你是 Linux 小白也能轻松上手!

Centos uniq命令详解(去重与计数实战教程) uniq命令  uniq去重 uniq计数 Linux文本处理 第1张

什么是 uniq 命令?

uniq 是一个标准的 Unix/Linux 命令行工具,主要用于过滤或报告相邻重复行。注意:它只能处理已排序的数据,因为 uniq 只会比较相邻的行。如果原始数据未排序,建议先用 sort 命令排序后再使用 uniq

基本语法

uniq [选项] [输入文件] [输出文件]

常用选项说明

  • -c--count:在每行前显示该行出现的次数(用于计数)。
  • -d--repeated:只显示重复的行(至少出现两次)。
  • -u--unique:只显示唯一出现的行(仅出现一次)。
  • -i:忽略大小写差异。

实战示例

1. 准备测试文件

首先,我们创建一个包含重复行的文本文件 data.txt

echo -e "apple\nbanana\napple\ncherry\nbanana\nbanana" > data.txt

查看文件内容:

cat data.txt# 输出:applebananaapplecherrybananabanana

2. 直接使用 uniq(注意:结果可能不完整)

uniq data.txt# 输出:applebananaapplecherrybanana

可以看到,虽然有重复的 applebanana,但由于它们不是连续的,uniq 并没有完全去重。因此,必须先排序

3. 正确做法:先 sort 再 uniq

sort data.txt | uniq# 输出:applebananacherry

现在,所有重复项都被成功去除!

4. 使用 -c 选项进行计数

sort data.txt | uniq -c# 输出:      2 apple      3 banana      1 cherry

每行前面的数字表示该行在原始文件中出现的次数。这就是 uniq 计数 的核心功能!

5. 只显示重复行(-d)或唯一行(-u)

# 显示重复行sort data.txt | uniq -d# 输出:applebanana# 显示唯一行sort data.txt | uniq -u# 输出:cherry

常见误区提醒

  • uniq 不能直接处理无序数据:必须配合 sort 使用才能实现全局去重。
  • uniq 默认读取标准输入,也可指定输入/输出文件。
  • 在脚本中常与管道(|)结合使用,提高效率。

总结

通过本教程,你已经掌握了在 Centos 系统中使用 uniq 命令进行去重计数的核心技巧。记住关键点:先排序,再 uniq。无论你是运维新手还是开发人员,这些技能都能极大提升你的 Linux 文本处理效率。

赶快在你的 Centos 服务器上试试吧!如果你觉得有用,欢迎收藏本教程,并分享给更多需要的朋友。

SEO 关键词:Centos uniq命令、uniq去重、uniq计数、Linux文本处理