Linux 命令:uniq 📅 发布时间:2026/7/13 10:11:16 👁️ 浏览次数: 概述uniq命令是对连续重复行去重/统计的工具常与sort配合使用先排序让重复行连续再去重核心用于文本去重、统计重复行出现次数是处理日志、数据清单的高频组合工具注意直接对未排序文件使用uniq仅能去除相邻的重复行无法处理非连续的重复行。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a一、基本语法uniq[选项][输入文件[输出文件]]无输入文件时默认读取标准输入最常用配合管道sort 文件名 | uniq可指定输出文件将处理结果写入替代重定向核心前提仅处理连续的重复行非连续重复行不会被识别。二、核心默认行为对连续重复行去重仅保留一行非连续重复行原样输出。示例未排序文件test.txtapple apple banana apple banana banana直接执行uniq test.txt输出apple banana apple banana仅去除了相邻的重复行非连续的apple/banana仍保留三、常用选项高频且简洁无冗余选项uniq的选项围绕去重、统计、显示重复行设计所有选项均可组合使用覆盖99%场景选项英文全称作用实用场景示例效果基于上述test.txt先sort再uniq-c--count统计每行出现的次数次数在前内容在后统计日志中重复IP/关键词的出现频次2 apple3 banana-d--repeated仅显示连续重复的行至少出现2次且仅保留一行筛选出有重复的内容排除唯一行applebanana-D--all-repeated显示所有的连续重复行保留所有重复实例查看重复行的全部原始内容appleapplebananabananabanana-u--unique仅显示唯一的行从未连续重复的行筛选出无重复的内容若文件无唯一行则无输出-f N--skip-fieldsN忽略前N列按剩余内容判断是否重复按指定列去重如忽略ID列按内容去重例1 apple/2 apple-f1视为重复行-s N--skip-charsN忽略前N个字符按剩余内容判断是否重复按字符位置去重如忽略前缀按后缀判断例a123/b123-s1视为重复行-w N--check-charsN仅比较前N个字符判断是否重复仅按前N个字符去重/统计例apple1/apple2-w5视为重复行四、经典实操示例分基础/进阶覆盖所有核心场景基础场景先排序再去重最常用必学基于上述test.txt先通过sort让重复行连续再用uniq处理# 1. 基础去重保留唯一行去除所有重复行sorttest.txt|uniq# 输出apple / banana# 2. 统计重复次数核心高频sorttest.txt|uniq-c# 输出2 apple / 3 banana# 3. 仅显示有重复的行至少出现2次sorttest.txt|uniq-d# 输出apple / banana# 4. 仅显示唯一行无任何重复# 新建含唯一行的文件test2.txtapple/apple/banana/pearsorttest2.txt|uniq-u# 输出pear进阶场景1按指定列/字符去重-f/-s/-w处理结构化文本data.txtID 名称 类型按名称去重忽略ID列1 apple fruit 2 apple fruit 3 banana fruit 4 apple veg 5 orange fruit# -f1忽略前1列ID列按剩余内容判断重复sortdata.txt|uniq-f1# 输出# 1 apple fruit# 4 apple veg# 3 banana fruit# 5 orange fruit# -w6仅比较前6个字符判断重复1 apple / 2 apple 前6字符一致sortdata.txt|uniq-w6 -c# 输出# 3 1 apple fruit# 1 5 orange fruit进阶场景2组合选项统计显示所有重复行# 显示所有重复行并统计每行总次数先统计再筛选需配合awksorttest.txt|uniq-c|awk$11# 输出2 apple / 3 banana等价sortuniq -d且带次数# 显示所有重复的原始行并写入新文件sorttest.txt|uniq-Drepeat_lines.txt进阶场景3与其他命令配合日志统计实战统计Nginx访问日志access.log中访问次数最多的前5个IP# 提取IP列 → 排序 → 统计次数 → 按次数降序 → 取前5grep-o\b[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\baccess.log|sort|uniq-c|sort-nr|head-5五、与sort -u的核心区别易混淆必分清sort -u和sort | uniq均能实现全局去重但功能侧重不同按需选择命令组合核心功能额外能力适用场景sort -u 文件名排序全局去重一步完成无统计、筛选功能仅去重仅需去重无需统计重复次数sort 文件名uniq排序全局去重两步完成可配合-c/-d/-u实现统计/筛选sort 文件名uniq -c排序去重统计次数核心统计能力无替代方案结论仅去重用sort -u更高效需统计/筛选重复行必须用sort | uniq 选项。六、关键注意事项核心前提uniq仅处理连续重复行未排序文件直接使用会漏判非连续重复行所有全局去重/统计场景必须先sort空行处理空行视为普通行连续空行会被去重/统计可先用grep -v ^$过滤空行空格/制表符行首/行尾的空格会影响重复判断如apple和apple视为不同行可先用sed s/^ *//;s/ *$//去除首尾空格输出文件指定输出文件时输入文件和输出文件不能为同一个文件否则会清空文件超大文件uniq逐行处理内存占用极低可配合sort处理GB级文本文件如日志、数据文件。七、高频组合用法实战必用直接复用1. 文本全局去重高效版sortfile.txt -uunique_file.txt2. 统计重复行次数并按次数降序排列sortfile.txt|uniq-c|sort-nr3. 筛选出仅出现一次的唯一行sortfile.txt|uniq-u4. 筛选出重复出现的行至少2次并统计次数sortfile.txt|uniq-c|awk$1 25. 处理结构化文本按指定列去重并统计# 按第2列逗号分隔去重统计次数先按第2列排序再忽略前1列去重sort-t,-k2 file.csv|uniq-f1 -c总结uniq是连续重复行处理工具核心价值是与sort配合实现全局去重/统计/筛选日常使用的核心口诀仅去重sort -u一步到位要统计/筛选sort | uniq -c/-d/-u组合使用结构化文本sort -t 分隔符 -k 列号 | uniq -f N按列处理。
JSON反序列化漏洞专题 第一部分:开篇明义 —— 定义、价值与目标 定位与价值 在现代化的Web应用、微服务架构以及数据交换场景中,JSON(JavaScript Object Notation) 凭借其轻量、易读、易解析的特性,已成为事实上的序列化数据交换标准。然… 2026/7/10 11:58:06
LLM微调的关键要点:如何打造高效、可靠的AI模型 .01 概述 在人工智能(AI)领域,近年来大规模语言模型(LLM)的发展给我们带来了巨大的惊喜。无论是文本生成、翻译、摘要,还是问答任务,LLM都表现出了强大的多功能性。然而,尽管这些模… 2026/7/12 11:27:45
Libvio.link反爬机制深度解析与突破策略 Libvio.link作为动态内容分发平台,其反爬体系融合了行为分析、设备指纹、动态加密等多重技术,对数据抓取构成显著挑战。本文将从反爬机制拆解入手,系统梳理Cookie验证、JS混淆、请求频率限制等核心障碍,结合实战代码与工具链&… 2026/7/10 22:49:33
《Java 100 天进阶之路》第55篇:线程池ThreadPoolExecutor(2026版) 第55篇:线程池ThreadPoolExecutor(2026版) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第54篇:AQS抽象队列同步器 | ➡️ 下一篇:第56篇:死锁与排查工具… 2026/7/13 10:10:42
C++ STL核心容器std::string深度解析:从内存管理到实战应用 1. 项目概述:为什么说“不懂STL,就不会C”? 如果你正在学习C,或者已经用C写过一些代码,但总觉得自己的代码写起来又长又笨重,别人写的代码却简洁高效,那问题很可能就出在STL上。我见过太多初学者… 2026/7/13 10:10:42
高压安全隔离技术:ISOM8710与STM32F722ZE的工业应用 1. 高压安全隔离的基础原理与行业需求在工业自动化、电力电子和医疗设备等领域,高压安全隔离是确保系统可靠性和人员安全的关键技术。传统的光耦隔离方案存在老化快、传输速率低等固有缺陷,而基于电容隔离的ISOM8710芯片则代表了新一代解决方案。电容隔离… 2026/7/13 10:08:41
Unity移动端AssetBundle下FairyGUI与Spine材质丢失问题分析与解决方案 1. 项目概述:当FairyGUI遇上Spine,移动端资源管理的“暗礁” 在Unity移动端项目的UI与动画开发中,FairyGUI和Spine的组合堪称“黄金搭档”。FairyGUI以其高效的UI编辑器和运行时性能著称,而Spine则是2D骨骼动画领域的行业标准&… 2026/7/13 10:08:41
C++凯撒密码实现:模运算在循环移位中的核心应用与洛谷P1914题解 1. 项目概述与核心价值最近在洛谷上刷题,看到P1914这道“小书童——凯撒密码”的题目,感觉特别有意思。它表面上是一个简单的字符串处理题,但背后却藏着循环移位这个在密码学和数据处理中非常核心的概念。很多刚接触C和算法的朋友,… 2026/7/13 10:04:39
软件工程可行性分析实战:3个维度量化评估,避免项目“烂尾” 软件工程可行性分析实战:3个维度量化评估,避免项目“烂尾” 去年参与的一个企业级SaaS项目让我深刻体会到可行性分析的价值。团队在立项阶段花费两周时间完成的技术可行性矩阵,后来成功预警了三个关键风险点,其中关于第三方API调用… 2026/7/13 10:04:39
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/13 8:31:55
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/13 9:31:08
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55