一,uniq干什么用的

文本中的重复行,基本上不是我们所要的,所以就要去除掉。linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个。使用uniq的时候要注意以下二点

1,对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort -u。

2,对文本操作时,若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过

二,uniq参数说明

查看复制打印?
  1. [zhangy@BlackGhost ~]$ uniq --help
  2. 用法:uniq [选项]... [文件]
  3. 从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。
  4. 不附加任何选项时匹配行将在首次出现处被合并。
  5. 长选项必须使用的参数对于短选项时也是必需使用的。
  6. -c, --count              //在每行前加上表示相应行目出现次数的前缀编号
  7. -d, --repeated          //只输出重复的行
  8. -D, --all-repeated      //只输出重复的行,不过有几行输出几行
  9. -f, --skip-fields=N     //-f 忽略的段数,-f 1 忽略第一段
  10. -i, --ignore-case       //不区分大小写
  11. -s, --skip-chars=N      //根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符
  12. -u, --unique            //去除重复的后,全部显示出来,根mysql的distinct功能上有点像
  13. -z, --zero-terminated   end lines with 0 byte, not newline
  14. -w, --check-chars=N      //对每行第N 个字符以后的内容不作对照
  15. --help              //显示此帮助信息并退出
  16. --version              //显示版本信息并退出

其中-z不知道有什么用

三,测试文本文件uniqtest

  1. this is a test
  2. this is a test
  3. this is a test
  4. i am tank
  5. i love tank
  6. i love tank
  7. this is a test
  8. whom have a try
  9. WhoM have a try
  10. you  have a try
  11. i want to abroad
  12. those are good men
  13. we are good men

四,实例详解

查看复制打印?
  1. [zhangy@BlackGhost mytest]$ uniq -c uniqtest
  2. 3 this is a test
  3. 1 i am tank
  4. 2 i love tank
  5. 1 this is a test           //和第一行是重复的
  6. 1 whom have a try
  7. 1 WhoM have a try
  8. 1 you  have a try
  9. 1 i want to abroad
  10. 1 those are good men
  11. 1 we are good men

从上例子中我们可以看出,uniq的一个特性,检查重复行的时候,只会检查相邻的行。重复数据,肯定有很多不是相邻在一起的。

  1. [zhangy@BlackGhost mytest]$ sort uniqtest |uniq -c
  2. 1 WhoM have a try
  3. 1 i am tank
  4. 2 i love tank
  5. 1 i want to abroad
  6. 4 this is a test
  7. 1 those are good men
  8. 1 we are good men
  9. 1 whom have a try
  10. 1 you  have a try

这样就可以解决上个例子中提到的问题

  1. [zhangy@BlackGhost mytest]$ uniq -d -c uniqtest
  2. 3 this is a test
  3. 2 i love tank

uniq -d 只显示重复的行

  1. [zhangy@BlackGhost mytest]$ uniq -D uniqtest
  2. this is a test
  3. this is a test
  4. this is a test
  5. i love tank
  6. i love tank

uniq -D 只显示重复的行,并且把重复几行都显示出来。他不能和-c一起使用

查看复制打印?
  1. [zhangy@BlackGhost mytest]$ uniq -f 1 -c uniqtest
  2. 3 this is a test
  3. 1 i am tank
  4. 2 i love tank
  5. 1 this is a test
  6. 2 whom have a try
  7. 1 you  have a try
  8. 1 i want to abroad
  9. 2 those are good men   //只有一行,显示二行

在这里those只有一行,显示的却是重复了,这是因为,-f 1 忽略了第一列,检查重复从第二字段开始的。

查看复制打印?
  1. [zhangy@BlackGhost mytest]$ uniq -i -c uniqtest
  2. 3 this is a test
  3. 1 i am tank
  4. 2 i love tank
  5. 1 this is a test
  6. 2 whom have a try  //一个大写,一个小写
  7. 1 you  have a try
  8. 1 i want to abroad
  9. 1 those are good men
  10. 1 we are good men

检查的时候,不区分大小写

查看复制打印?
  1. [zhangy@BlackGhost mytest]$ uniq -s 4 -c uniqtest
  2. 3 this is a test
  3. 1 i am tank
  4. 2 i love tank
  5. 1 this is a test
  6. 3 whom have a try   //根上一个例子有什么不同
  7. 1 i want to abroad
  8. 1 those are good men
  9. 1 we are good men

检查的时候,不考虑前4个字符,这样whom have a try 就和 you have a try 就一样了。

  1. [zhangy@BlackGhost mytest]$ uniq -u uniqtest
  2. i am tank
  3. this is a test
  4. whom have a try
  5. WhoM have a try
  6. you  have a try
  7. i want to abroad
  8. those are good men
  9. we are good men

去重复的项,然后全部显示出来

  1. [zhangy@BlackGhost mytest]$ uniq -w 2 -c uniqtest
  2. 3 this is a test
  3. 3 i am tank
  4. 1 this is a test
  5. 1 whom have a try
  6. 1 WhoM have a try
  7. 1 you  have a try
  8. 1 i want to abroad
  9. 1 those are good men
  10. 1 we are good men

对每行第2个字符以后的内容不作检查,所以i am tank 根 i love tank就一样了。

uniq linux下去除重复行命令相关推荐

  1. linux排列去重复的命令,实例详细说明linux下去除重复行命令uniq

    一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...

  2. menisa mysql_实例详细说明linux下去除重复行命令uniq

    一,uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...

  3. linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...

    先来看命令paste. paste将几个文件的相应行用制表符连接起来,并输出到标准输出. paste [选项] file1 file2 -d 指定不同于空格或tab键的域分隔符.例如用#分隔域,使用- ...

  4. linux docker安装_在Linux下通过几行命令安装Docker

    准备一台linux虚拟机 使用Xshell客户端连接该虚拟机 输入安装docker命令 apt install docker.io 等待命令执行成功 验证安装是否正确 root@ubuntu:~# d ...

  5. Linux下怎么退出telnet命令行

    Linux下怎么退出telnet命令行 经常要用到telnet来测试端口是否正常开放. 但是在telnet进入某个端口后无法退出,没办法,为了继续测试只好关掉这个dos(或其他)窗口,重新打开一个. ...

  6. Linux下一款可以使用命令行的pdf阅读器

    Zathura是linux下一款用命令行控制打pdf阅读器,并且基本打使用方法和vim很相似.对于喜欢键盘操作的用户来说的确是一个不错的选择. ubuntu下的安装命令: sudo apt-get i ...

  7. linux列表去重复数据,Linux常用去除重复数据口令

    一.uniq干什么用的 文本中的重复行,基本上不是我们所要的,所以就要去除掉.linux下有其他命令可以去除重复行,但是我觉得uniq还是比较方便的一个.使用uniq的时候要注意以下二点 1,对文本操 ...

  8. linux paste 变量,Linux下的paste合并命令详解

    paste单词意思是粘贴.该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反. 粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同.paste将按行将不同文件行信息放在一 ...

  9. shell脚本--awk数组实现去除重复行

    去除重复行的方法有很多,这里介绍三种. 测试文本: [root@172-0-10-222 myscripts]# cat testfile andy 123456 hanna 123456 hello ...

  10. 在linux下的使用复制命令cp,不让出现“overwrite”(文件覆盖)提示的方法。

    2019独角兽企业重金招聘Python工程师标准>>> 在linux下的使用复制命令cp,不让出现"overwrite"(文件覆盖)提示的方法. 一般我们在使用c ...

最新文章

  1. 通过java.util.concurrent写多线程程序
  2. Eclipse配置 Maven 异常处理
  3. 什么是java OOM?如何分析及解决oom问题?
  4. 机器学习——深度学习之卷积神经网络(CNN)——AlexNet卷积神经网络结构
  5. jstree中json data 的生成
  6. Excel弱爆了!这个工具30分钟完成了我一天的工作量,零基础也能学!
  7. 高精度地图数据的结构
  8. NPOI Word插入图片的方法
  9. starops 云效运维 文档_云效手册专有云版.pdf
  10. 【磨刀不误砍柴工】由传递函数绘出频率响应图
  11. Introduce myself
  12. 深入理解Java虚拟机(三)之详拆运行时数据区的各个结构----方法区(元空间)
  13. 用计算机表达爱意,“我爱你”用古语表达,句句蕴含爱意,网友:真是表白“利器”...
  14. 数据分析之非参数检验与二元逻辑回归结果不一致的原因
  15. iOS 加密算法之MD5加密使用
  16. mapbox基本使用
  17. Flutter 时间选择器
  18. 【数据结构和算法】2谈谈算法
  19. CSS制作类似浏览器标题栏的圆角样式
  20. arg是什么函数_不定参数函数实现var_arg系列的宏

热门文章

  1. paip.应用程序远程WEB 接口的设计
  2. 富国基金:基金公司是如何进行数据架构规划与实践的
  3. (转)刘巍然-关于公钥与私钥
  4. (转)“宇宙之王”高盛在历史的交叉口,不得不全面走向机器自动化
  5. 独家:为了永不停机的计算服务 - 四月月刊 | 凌云时刻
  6. 学习成果区块链问世,中科宇创为人才能力认证提供权威账本
  7. select vue 获取name_在vue的组件中获取select2插件的值
  8. 【优化算法】人工蜂鸟算法(AHA)【含Matlab源码 1543期】
  9. 【车间调度】基于matlab粒子群算法求解生产调度问题【含Matlab源码 412期】
  10. 深度学习分类pytorch_立即学习AI:02 —使用PyTorch进行分类问题简介