uniq命令:
  对指定的ASCII文件或标准输入进行唯一性检查,以判断文本文件中重复出现的行,常用于分析日志;查看tcp各个状态连接数,ip或域名连接数排名等等场景,一般与 sort 命令结合使用。
 
命令格式:
uniq [选项]... [文件1] [文件2]
uniq从已经排好序的文本文件file1中删除重复的行,输出到标准输出或file2,常作为过滤器,配合管道试压。在使用uniq命令前,必须确保操作的文本文件已经sort排序了,若不带参数运行uniq,将删除重复的行。
 
常见参数:
[root@bqh-118 ~]# uniq --help

用法:uniq [选项]... [文件]
从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。

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

长选项必须使用的参数对于短选项时也是必需使用的。
-c, --count 在每行前加上表示相应行目出现次数的前缀编号
-d, --repeated 只输出重复的行,2次或2次以上的。
-D, --all-repeated[=delimit-method 显示所有重复的行
delimit-method={none(default),prepend,separate}
以空行为界限
-f, --skip-fields=N 比较时跳过前N 列
-i, --ignore-case 在比较的时候不区分大小写
-s, --skip-chars=N 比较时跳过前N 个字符
-u, --unique 只显示唯一的行
-z, --zero-terminated 使用'\0'作为行结束符,而不是新换行
-w, --check-chars=N 对每行第N 个字符以后的内容不作对照
--help 显示此帮助信息并退出
--version 显示版本信息并退出

若域中为先空字符(通常包括空格以及制表符),然后非空字符,域中字符前的空字符将被跳过。

提示:uniq 不会检查重复的行,除非它们是相邻的行。
如果您想先对输入排序,使用没有uniq 的"sort -u"。

测试:

不加参数只对相邻的相同行内容去重

[root@bqh-118 ~]# cat qc.log
192.168.43.117
192.168.43.119
192.168.43.118
192.168.43.118
192.168.43.117
192.168.43.117
192.168.43.119
192.168.43.110
[root@bqh-118 ~]# uniq qc.log
192.168.43.117
192.168.43.119
192.168.43.118
192.168.43.117
192.168.43.119
192.168.43.110

通过sort让重复的行相邻:

[root@bqh-118 ~]# sort qc.log
192.168.43.110
192.168.43.117
192.168.43.117
192.168.43.117
192.168.43.118
192.168.43.118
192.168.43.119
192.168.43.119

uniq配合sort来去重:

[root@bqh-118 ~]# sort qc.log |uniq
192.168.43.110
192.168.43.117
192.168.43.118
192.168.43.119
[root@bqh-118 ~]# sort -u qc.log
192.168.43.110
192.168.43.117
192.168.43.118
192.168.43.119

当然我们也可以通sort -u file实现去重

去重计数:

[root@bqh-118 ~]# sort qc.log |uniq -c
1 192.168.43.110
3 192.168.43.117
2 192.168.43.118
2 192.168.43.119
[root@bqh-118 ~]# sort qc.log
192.168.43.110
192.168.43.117
192.168.43.117
192.168.43.117
192.168.43.118
192.168.43.118
192.168.43.119
192.168.43.119

查看重复的项:

[root@bqh-118 ~]# sort qc.log |uniq -d
192.168.43.117
192.168.43.118
192.168.43.119

查看所有重复的项:

[root@bqh-118 ~]# sort qc.log |uniq -D
192.168.43.117
192.168.43.117
192.168.43.117
192.168.43.118
192.168.43.118
192.168.43.119
192.168.43.119

不区分大小写,去除重复的项:

[root@bqh-118 ~]# cat qc1.log
apple
APple
BANAN
banan
grape
orange
Orange
bqh jyw
bqh1 jyw
[root@bqh-118 ~]# uniq -i qc1.log
apple
BANAN
grape
orange
bqh jyw
bqh1 jyw

跳过第一列:

[root@bqh-118 ~]# uniq -f1 qc1.log
apple
bqh jyw
bqh1 jyw

跳过每行的第一个字符:

[root@bqh-118 ~]# uniq -s1 qc1.log
apple
APple
BANAN
banan
grape
orange
bqh jyw
bqh1 jyw

案例:处理一下qc2.log文件内容,将域名取出来并根据域名进行计数排序处理。

[root@bqh-118 ~]# cat  qc2.log
http://www.baidu.com
http://www.xiaobai.com
http://www.etiantian.org
http://www.jyw.com
http://www.jyw.com
http://www.xiaobai.com
http://www.etiantian.org
http://www.jyw.com
http://www.baidu.com
http://www.baidu.com
http://www.jyw.com
http://www.etiantian.org
[root@bqh-118 ~]# awk -F / '{print $3}' qc2.log|sort|uniq -c|sort -r
4 www.jyw.com
3 www.etiantian.org
3 www.baidu.com
2 www.xiaobai.com

方法二:cut方法

[root@bqh-118 ~]# cut -d / -f3 qc2.log |sort -r|uniq -c
2 www.xiaobai.com
4 www.jyw.com
3 www.etiantian.org
3 www.baidu.com
[root@bqh-118 ~]# cut -d / -f3 qc2.log |sort -r|uniq -c|sort -r
4 www.jyw.com
3 www.etiantian.org
3 www.baidu.com
2 www.xiaobai.com

当然还有其它方法,在这里就简单介绍一下常用的方法。

linux uniq命令用法的更多相关文章

  1. linux uniq 命令实用手册

    Linux uniq 命令用于处理文本内容中的重复行. 这里我们只介绍其常用参数,其完整用法可参见man uniq. 例如,我们有如下文件内容: >>> cat log.txt __ ...

  2. linux mail命令用法

    在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...

  3. Linux uniq 命令

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

  4. (转)linux paste命令用法详解

    linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...

  5. [转]linux uniq 命令详解

    转自:http://blog.csdn.net/tianmohust/article/details/6997683 uniq 命令   文字 uniq 是LINUX命令 用途 报告或删除文件中重复的 ...

  6. Linux——基础命令用法(下)

    一.linux用户 1.什么是用户 用户是用来运行某一些进程.拥有某一些文件或目录. 在Linux里面,用户分成三大类:root用户.系统用户.普通用户. 用户是用UID来唯一标识身份的,且root用 ...

  7. Linux uniq命令

    200 ? "200px" : this.width)!important;} --> 介绍 uniq命令是一个文本去重命令,它能对标准输入和文本文件进行去重操作,并且能将结 ...

  8. Linux——基础命令用法(上)

    一.Linux基础命令 1.Linux命令行的格式 命令行的格式为:用户名+主机名+当前工作目录 输入内容的命令格式为:命令 [-短选项/--长选项] [参数] [root@localhost ~]# ...

  9. linux find命令用法

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...

随机推荐

  1. Spring cloud微服务安全实战-3-5 API安全机制之认证(2)

    基于Http协议的认证方式有很多.本节我们只讲一个最简单的HttpBasic认证.聪明就可以看出来,这是一个最基础的认证,好处是简单方便,所有的主流浏览器都支持,问题就是并不是非常安全的,但是帮我们大 ...

  2. "AttributeError: /lib64/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup"

    以前在openssl,有 EVP_CIPHER_CTX_cleanup函数. 1.1.0版本中 替换成为EVP_CIPHER_CTX_reset 解决办法: 找到报错的文件vim /usr/local ...

  3. 报错:Error, CM server guid updated, expected xxxxx, received xxxxx (未解决)

    报错背景: CDH断电重启后,cloudera-scm-server启动报错, cloudera-scm-server 已死,但 pid 文件仍存 由于没有成熟的解决方案,于是我就重新安装了MySQL ...

  4. kafka如果有多个patition,消费消息的时候消息是没有顺序的

    创建一个2个分区,3个副本的topic,名字叫first kafka-topics.sh  --create --zookeeper datanode1:2181 --partitions 2 --r ...

  5. 迅速生成项目-react-nextjs

    推荐指数:

  6. 神啊,看看Log4Net这个东西吧

    这个东西实在是让人感动的想哭囊…………-_-..... Log4Net.config文件 <?xml version="1.0" encoding="utf-8&q ...

  7. 安卓微信overflow-x overflow-y引发的bug

    今天xgo文章图片页上线用微信扫页面发现一个bug,页面可以双击放大缩小. 找了半天原因,发现是图片描述设置了overflow-y引发的bug. 建议在微信场景里满屏显示不能滚动的页面里慎用overf ...

  8. 在ensp上配置通过Stelnet登录系统

    我们为什么我们要采用Stelent登录? 因为不安全,我们要采用更加安全的方式,双向加密,通过ssh网络安全协议 下面我们开始实验:使用路由器R1模拟PC,作为SSH的客户端:路由器R2作为SSH的服 ...

  9. YCOJ过河卒C++

    过河卒是一道~~较简单 的问题,用递归或者动态规划都可以完成,但今天主要不是递归或者动态规划,而是用深度优先搜索做的.虽然会有两组TLE~~ 深搜是一种向下搜索的算法(如图所示) 它能有效的统计中点到 ...

  10. linux ubuntu 网卡配置---固定IP

    需要修改/etc/network/interfaces和/etc/resolvconf/resolv.conf.d/base两个文件. 1) /etc/network/interfaces文件: 首先 ...