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

linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)

linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)

  • 1. uniq 使用语法
  • 2. sort 简单效果
  • 3. uniq 使用例子
    • 3.1 不加任何选项
      • 3.1.1 不用 sort 效果
      • 3.1.2 uniq 结合 sort 一起使用
    • 3.2 使用选项例子
      • 3.2.1 去重打印(或打印不重复行)
      • 3.2.2 重复统计问题(`-c`选项)

1. uniq 使用语法

  • uniq 常用于重复数据的处理

  • 语法:

    uniq 文件名
    uniq [选项] 文件名
    
  • 常见选项:

    -D :仅显示重复的行,且打印重复行的所有行
    -d :仅显示重复的行,且每个重复的行只打印一次
    -u :只打印不重复的行
    
  • 使用注意事项:一般使用时,结合 sort 一起使用,sort 用来排序,结合使用的效果是:主要处理文档中不相邻的重复行。当然,如果没有不相邻的重复行,可以 uniq 单独使用,但是为了避免结果出现不准确性,尽量结合起来使用。

    下面案例会让你体会到 sort 的重要性,往下看吧……

2. sort 简单效果

  • sort 实现排序效果,即把相同的行排在一起,不多说,简单看一个效果即可,如下:
    sort bb.txt
    
    在这里插入图片描述

3. uniq 使用例子

3.1 不加任何选项

3.1.1 不用 sort 效果

  • uniq 不加任何选项的时候,是直接默认去重打印,但是只针对相邻的重复行,不相邻的重复行失效,如下:
    uniq bb.txt
    
    在这里插入图片描述

3.1.2 uniq 结合 sort 一起使用

  • 再看一下结合 sort 使用的效果,先排序后去重,实现了重复内容的真正去重,效果如下
    sort bb.txt |uniq
    cat bb.txt | sort| uniq
    
    在这里插入图片描述

3.2 使用选项例子

  • 下面的例子也是要结合 sort 同时使用的,我们只演示第一个 -D 选项后面的就直接都加 sort 了。

3.2.1 去重打印(或打印不重复行)

  1. -D:仅显示重复的行,且打印重复行的所有行,即:重复多少次打印多少行
    • 看图说话,一看就,示例如下:
      uniq -D bb.txt
      sort bb.txt | uniq -D
      
      在这里插入图片描述
  2. -d:仅显示重复的行,且每个重复的行只打印一次
    • 示例如下:
      sort bb.txt | uniq -d
      
      在这里插入图片描述
  3. -u:只打印不重复的行
    • 示例如下:
      sort bb.txt | uniq -u
      
      在这里插入图片描述

3.2.2 重复统计问题(-c选项)

  • 跟上面的一样,还是要结合 sort 一起使用的
    • 先看第一个直接统计的效果:
      cat bb.txt | sort | uniq -c
      
      在这里插入图片描述
      上面的统计结果没问题,但是排序稍微有点不舒服,那继续优化一下吧……
    • 再看一个将统计后数字按大小排序的结果:
      根据上面我们对 sort 的理解,将上面的结果再次使用一下(使用sort -r 还能降序),就完美达到了我们的要求,如下:
      cat bb.txt | sort | uniq -c | sort
      cat bb.txt | sort | uniq -c | sort -r
      
      在这里插入图片描述
    • 你还可以再用 awk 再简单处理一下,如下:
      cat bb.txt | sort | uniq -c | sort -r | awk '{print $2,$1}'
      cat bb.txt | sort | uniq -c | sort -r | awk '{print $1,$2}'
      
      在这里插入图片描述
  • 当然,你也可以使用 awk 工具写个脚本跑一下,今天先到这里,这个后续再说,自己可以搞一搞
http://www.lryc.cn/news/26569.html

相关文章:

  • 网站打不开数据库错误等常见问题解决方法
  • 爬虫实战进阶版【1】——某眼专业版实时票房接口破解
  • 大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
  • UNet-肝脏肿瘤图像语义分割
  • 三周爆赚千万 电竞选手在无聊猿游戏赢麻了
  • BERT学习
  • 大话数据结构-图的深度优先遍历和广度优先遍历
  • c语言指针怎么理解 第一部分
  • 计算机网络安全基础知识2:http超文本传输协议,请求request消息的get和post,响应response消息的格式,响应状态码
  • Pytest自动化框架~权威教程03-原有TestSuite的执行方法
  • web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
  • 【MyBatis】源码学习 05 - 关于 xml 文件解析的分析
  • 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II
  • Ethercat系列(10)用QT实现SOEM主站
  • 论文投稿指南——中文核心期刊推荐(科学、科学研究)
  • jQuery属性操作prop()、attr()和data()
  • git的使用
  • webpack生产环境配置
  • linux下安装jenkins
  • IGKBoard(imx6ull)-I2C接口编程之SHT20温湿度采样
  • MyBatis——配置文件完成增删改查
  • Python内置函数 — all,any
  • Pycharm配置QGIS环境
  • 【C++】stack 与 queue
  • ARC142E Pairing Wizards
  • Spark开发实战-主播打赏排行榜统计
  • python 如何存储数据 (python 的文件和异常)
  • 第三章-OpenCV基础-8-绘图函数
  • 逆约瑟夫问题
  • MySQL之三大日志(更新中)