2026/4/3 6:12:20
网站建设
项目流程
自己做同城购物网站,搜房网站要怎么 做,百度实名认证,wordpress 地址调用概述
uniq 命令是对连续重复行去重/统计的工具#xff0c;常与 sort 配合使用#xff08;先排序让重复行连续#xff0c;再去重#xff09;#xff0c;核心用于文本去重、统计重复行出现次数#xff0c;是处理日志、数据清单的高频组合工具#xff0c;注意#xff1a;直…概述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按列处理。