Linux之uniq

作用

  1. Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
  2. uniq 可检查文本文件中重复出现的行列。

    参数

  • -c 在每列旁边显示该行重复出现的次数。
  • -d 仅显示重复出现的行列。
  • -f<栏位> 忽略比较指定的栏位。
  • -s<字符位置> 忽略比较指定的字符。
  • -u 仅显示出一次的行列。
  • -w[字符位置] 指定要比较的字符。
  • –help 显示帮助。
  • –version 显示版本信息。
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

-c参数得到去除重复行的同时,还在每一行前打印出重复次数

1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ uniq tmp
2018-01-21
2019-02-28
2016-04-30
2010-10-01
2019-02-28
1
2
3
4
5
6
[md@vm-kvm5643-app ~]$ uniq -c tmp
1 2018-01-21
1 2019-02-28
1 2016-04-30
3 2010-10-01
1 2019-02-28

但是并不相邻的两行,uniq命令是不起作用的,这就需要使用sort

1
2
3
4
5
[md@vm-kvm5643-app ~]$ sort -n -t'-' -k 1 tmp | uniq
2010-10-01
2016-04-30
2018-01-21
2019-02-28
1
2
3
4
5
[md@vm-kvm5643-app ~]$ sort -n -t'-' -k 1 tmp | uniq -c
3 2010-10-01
1 2016-04-30
1 2018-01-21
2 2019-02-28

找出文件中的重复行

1
2
3
[md@vm-kvm5643-app ~]$ sort -n -t'-' -k 1 tmp | uniq -d
2010-10-01
2019-02-28
-------------本文结束感谢您的阅读-------------