一,uniq干什么用的

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

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

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

二,uniq参数说明

[zhangy@BlackGhost ~]$ uniq --help

用法:uniq [选项]... [文件]

从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

不附加任何选项时匹配行将在首次出现处被合并。

长选项必须使用的参数对于短选项时也是必需使用的。

-c, --count              //在每行前加上表示相应行目出现次数的前缀编号

-d, --repeated          //只输出重复的行

-D, --all-repeated      //只输出重复的行,不过有几行输出几行

-f, --skip-fields=N     //-f 忽略的段数,-f 1 忽略第一段

-i, --ignore-case       //不区分大小写

-s, --skip-chars=N      //根-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符

-u, --unique            //去除重复的后,全部显示出来,根mysql的distinct功能上有点像

-z, --zero-terminated   end lines with 0 byte, not newline

-w, --check-chars=N      //对每行第N 个字符以后的内容不作对照

--help              //显示此帮助信息并退出

--version              //显示版本信息并退出

其中-z不知道有什么用

三,测试文本文件uniqtest

this is a test

this is a test

this is a test

i am tank

i love tank

i love tank

this is a test

whom have a try

WhoM have a try

you  have a try

i want to abroad

those are good men

we are good men

四,实例详解

[zhangy@BlackGhost mytest]$ uniq -c uniqtest

3 this is a test

1 i am tank

2 i love tank

1 this is a test           //和第一行是重复的

1 whom have a try

1 WhoM have a try

1 you  have a try

1 i want to abroad

1 those are good men

1 we are good men

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

[zhangy@BlackGhost mytest]$ sort uniqtest |uniq -c

1 WhoM have a try

1 i am tank

2 i love tank

1 i want to abroad

4 this is a test

1 those are good men

1 we are good men

1 whom have a try

1 you  have a try

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

[zhangy@BlackGhost mytest]$ uniq -d -c uniqtest

3 this is a test

2 i love tank

uniq -d 只显示重复的行

[zhangy@BlackGhost mytest]$ uniq -D uniqtest

this is a test

this is a test

this is a test

i love tank

i love tank

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

[zhangy@BlackGhost mytest]$ uniq -f 1 -c uniqtest

3 this is a test

1 i am tank

2 i love tank

1 this is a test

2 whom have a try

1 you  have a try

1 i want to abroad

2 those are good men   //只有一行,显示二行

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

[zhangy@BlackGhost mytest]$ uniq -i -c uniqtest

3 this is a test

1 i am tank

2 i love tank

1 this is a test

2 whom have a try  //一个大写,一个小写

1 you  have a try

1 i want to abroad

1 those are good men

1 we are good men

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

[zhangy@BlackGhost mytest]$ uniq -s 4 -c uniqtest

3 this is a test

1 i am tank

2 i love tank

1 this is a test

3 whom have a try   //根上一个例子有什么不同

1 i want to abroad

1 those are good men

1 we are good men

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

[zhangy@BlackGhost mytest]$ uniq -u uniqtest

i am tank

this is a test

whom have a try

WhoM have a try

you  have a try

i want to abroad

those are good men

we are good men

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

[zhangy@BlackGhost mytest]$ uniq -w 2 -c uniqtest

3 this is a test

3 i am tank

1 this is a test

1 whom have a try

1 WhoM have a try

1 you  have a try

1 i want to abroad

1 those are good men

1 we are good men

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

menisa mysql_实例详细说明linux下去除重复行命令uniq相关推荐

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

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

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

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

  3. lunux安装多个mysql_实例详解linux下多个mysql5.7.19(tar.gz)安装图文教程

    初级第一次在Linux下安装MySQL-5.7.19版本教程请看上一篇,如果已经会安装了,那么请看这篇linux下安装多个mysql-5.7.19,本文主要为大家详细介绍了linux下多个mysql5 ...

  4. linux去除重复字符,Linux去除重复项命令uniq

    本篇介绍uniq命令,uniq也是linux管道命令家族中的一员,其主要功能是去除重复项. 在介绍uniq命令之前,我们先来新建在下面的案例中需要用到的文件/tmp/uniq.txt,内容如下 默认情 ...

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

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

  6. 这可能是东半球最详细的Linux下搭建Jenkins服务器实现自动打包的教程(下)

    上一篇我们从零开始,在Linux环境下配置了Jenkins的Android构建环境,但也仅仅是搭建环境,至于参数化构建.输出apk .定时构建.邮件发送等功能因为篇幅的原因没有介绍,本篇博客就来介绍介 ...

  7. 这可能是东半球最详细的Linux下搭建Jenkins服务器实现自动打包的教程(上)

    前言:作为开发者,我们都遇到过这样一个问题,项目在测试期的时候,测试总会找我们打各个环境的包,什么生产包.prd包.pre包,每次都是我们打完包再发给测试.可是打包是要时间的啊,项目小还好,项目大的话 ...

  8. linux vi命令操作实例,Linux下Vi替换字符命令操作实例

    在Linux下的开发中,经常涉及到对文件中的字符进行处理,其中,对字符的替换操作也是非常的频繁.本文以一个实际的文件为例,详细 在Linux下的开发中,经常涉及到对文件中的字符进行处理,其中,对字符的 ...

  9. md0和md1linux软raid,linux下Raid及mdadm命令详解

    linux下Raid及mdadm命令详解 1.RAID级别:仅代表磁盘组织方式不同,没有高低之分: Raid常用种类:raid0,raid1,raid5,raid10,raid01 jbod:叠加硬盘 ...

最新文章

  1. 从 LRU Cache 带你看面试的本质
  2. django框架之自定义重定向页面
  3. OpenCV训练面部界标探测器face_landmark_trainer
  4. (转)FTP的PORT(主动模式)和PASV(被动模式)
  5. 一张图看懂小程序全生态
  6. Teams数据统计 - 通话记录
  7. 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得
  8. 栈和队列:1.栈(Stack)
  9. 基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
  10. SNMPv3对安全威胁的分类
  11. java rcfile,hsqldb sqltool rcfile不起作用
  12. drop user和drop user cascade的区别
  13. 029——VUE中键盘语义修饰符
  14. rds基于什么开发_玩物得志: 基于DataWorks+MaxCompute+MC-Hologres 构建大数据平台
  15. IATF16949:2016汽车质量管理体系认证办理流程
  16. 【BUUCTF - PWN】babyheap_0ctf_2017
  17. pycharm 中 import sys 失败的原因 (python)
  18. 商汤 | 离线量化算法研究,从经典到原创
  19. 中科呐喊WiFi热点广告机APP使用教程(安卓)
  20. clickonce程序部署后,启动不成功的问题

热门文章

  1. concurrenthashmap是什么锁_多线程为什么要用ConcurrentHashMap
  2. termux怎么安装python库_Python termux-apt-repo包_程序模块 - PyPI - Python中文网
  3. Python 中的序列类型支持哪些公共操作
  4. 5 加盐_小葱拌豆腐的5种做法,收藏起来慢慢学!
  5. 润乾报表配置mysql数据源_润乾报表在proxool应用下的数据源配置
  6. linux 环境变量 export PATH和PATH有什么区别?
  7. C语言字符串拼接函数:strcat()
  8. Intel Realsense D435报错 RuntimeError: MFCreateDeviceSource(_device_attrs, _source) returned: HResult
  9. python sklearn.decomposition.PCA 主成分分析, 原理详解
  10. 初学__Python——用包来管理多个模块