uniq:去除重复行

xiaohai 2021-06-10 11:30:34 1709人围观 标签: Linux 
简介 uniq命令用于输出或忽略文件中的重复行(连续出现的相同行)。在工作中,我们会先对文件进行排序,然后去重计数。
说明

  uniq命令用于输出或忽略文件中的重复行(连续出现的相同行)。在工作中,我们会先对文件进行排序,然后去重计数。

格式

  uniq [option] [filename/input]

常用参数说明
  • -c:去除重复行,并计算每行出现的次数
  • -d:只显示重复的行
  • -u:只显示唯一的行
示例

1、不带参数进行去重

[root@localhost ~]# cat uniq.txt 
2018-06-08
2018-06-09
2018-06-09
2018-06-08
2018-05-04
2018-06-08
2018-06-09
[root@localhost ~]# uniq uniq.txt #去除了2018-06-09连续出现的相同行
2018-06-08
2018-06-09
2018-06-08
2018-05-04
2018-06-08
2018-06-09

2、排序再去重

[root@localhost ~]# sort uniq.txt > uniq.txtu
[root@localhost ~]# cat uniq.txtu
2018-05-04
2018-06-08
2018-06-08
2018-06-08
2018-06-09
2018-06-09
2018-06-09
[root@localhost ~]# uniq uniq.txtu
2018-05-04
2018-06-08
2018-06-09

#直接使用管道进行处理
[root@localhost ~]# sort uniq.txt|uniq
2018-05-04
2018-06-08
2018-06-09

3、-c参数的使用,计算重复的次数

[root@localhost ~]# sort uniq.txt|uniq -c
      1 2018-05-04
      3 2018-06-08
      3 2018-06-09

4、-d和-u参数的使用

[root@localhost ~]# sort uniq.txt|uniq -d
2018-06-08
2018-06-09
[root@localhost ~]# sort uniq.txt|uniq -u
2018-05-04