linux 查询日志 去重,linux命令(12)uniq去重

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

一,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 //显示版本信息并退出

三,测试文本文件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

四,实例详解

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

[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

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

[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

uniq -d 只显示重复的行

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

3 this is a test

2 i love tank

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

[zhangy@BlackGhost mytest]$ uniq -D uniqtest

this is a test

this is a test

this is a test

i love tank

i love tank

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

[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 //只有一行,显示二行

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

[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

检查的时候,不考虑前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

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

[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

实例解说Linux命令行uniq

Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行.在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的.该命令加工后的结果 ...

linux命令-sed,uniq,cut,wc

sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...

每天一个linux命令12之top

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...

日志快速筛选 之 linux命令grep|uniq|wc|awk

以前我个人的观念是,在线上运行的东西尽量不要记什么流水日志. 但是后来我变了,发现在线上记日志是一个绝对有必要的东西,尤其是在当下很流行的微服务的推动下,没有日志的帮助,犹如一个睁眼瞎,排查问题基本靠 ...

每天一个linux命令(12):more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

每天一个 Linux 命令(12):more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

每天一个linux命令(12):more命令

1.命令简介 more (more) 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比,方便逐页阅读(file perusal filter fo ...

【转】每天一个linux命令(12):more命令

原文网址:http://www.cnblogs.com/peida/archive/2012/11/02/2750588.html more命令,功能类似 cat ,cat命令是整个文件的内容从上到下 ...

linux 命令——12 more (转)

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会 ...

每天一个linux命令目录

出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...

随机推荐

SSIS package 更新 variable

在Package中声明一个variable,在package运行的过程中,SSIS如何update Variable? 第一种方法:使用 Script Task 来更新Variable的值 1,创建一 ...

An error in projects

Error能使系统产生Failure从而导致系统不能达到所需的功能. 曾经,做一个关于酒店管理系统的项目.因为数据库表主外键的连接错误,当对页面的添加桌位功能进行测试时,不能正确的添加. 后通过逐行对 ...

设计和实现OLAP解决方案

设计和实现OLAP解决方案   第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是 ...

经验分享:如何用grep对PHP进行代码审计

这是一个常见的误解- 企业需要购买复杂和昂贵的软件来发现应用程序中安全漏洞:而这些专门的软件应用程序,无论是黑盒或白盒,开源或商业,都能很快的发现安全漏洞. 事实是:所有这些专业的漏洞扫描工具都有其特 ...

UVA 10618 Tango Tango Insurrection

https://vjudge.net/problem/UVA-10618 题目 你想学着玩跳舞机.跳舞机的踏板上有4个箭头:上.下.左.右.当舞曲开始时,屏幕上会有一些箭头往上移动.当向上移动箭头与顶 ...

Oracle 分析函数及常用函数

什么叫分析函数(Analytic function)? Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组 ...

Hive学习笔记——保存select结果,Join,多重插入

1. 保存select查询结果的几种方式: 1.将查询结果保存到一张新的hive表中 create table t_tmp as select * from t_p; 2.将查询结果保存到一张已经存在 ...

JavaScript修改IE注册表

http://www.cnblogs.com/zmc/p/3373812.html

left join的多重串联与groupby

有三张表或组合查询,f1,f2,f3,其中,f1分别与f2,f3是一对多关系,f1一条记录可能对应f2或f3中0条或多条记录 要创建一个查询,以f1为基准,即f1中有多少条记录,结果也就返回对应数量的 ...

队列 P1160 队列安排(啊啊 不会啊)

洛谷 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为 ...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值