linux去除内容重复行,实例详细说明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 byte, not newline

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

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

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

其中-z不知道有什么用

三,测试文本文件uniqtest

[zhangy@BlackGhost mytest]$ uniq -c uniqtest

this is a test

i am 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

this is a test

i am 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]$ sort uniqtest |uniq -c

WhoM have a try

i am tank

i love tank

i want to abroad

this is a test

those are good men

we are good men

whom have a try

you have a try

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

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

this is a test

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 -c uniqtest

this is a test

i am tank

i love tank

this is a test

whom have a try

you have a try

i want to abroad

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

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

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

this is a test

i am tank

i love tank

this is a test

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

you have a try

i want to abroad

those are good men

we are good men

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

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

this is a test

i am tank

i love tank

this is a test

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

i want to abroad

those are good men

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 -c uniqtest

this is a test

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就一样了。

uniq linux下去除重复行命令

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

linux 下删除重复行-- uniq 与 awk

$ cat file liw liw liw hdsui mdksjd liw $ cat file | uniq -u # 只删除相邻的,不保留重复行 hdsui mdksjd liw $ cat ...

Linux合并文件、去除重复行的命令

Linux合并文件命令: awk '{printf("%s\n",$0)}' YQ-*101?.txt >  123.txt   linux去除重复行命令:cat YQ-10 ...

linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计

转自:http://blog.sina.com.cn/s/blog_6797a6700101pdm7.html 去除重复行 sort file |uniq 查找非重复行 sort file |uniq ...

[工具] 如何利用Notepad++去除重复行

问题: 需要去除重复数据, 例如: 解决方案: 1. 打开notepad++: 2. 如果没有找到"TextFx" 选项, 需要先安装该插件. 依次打开"插件" ...

DataTable去除重复行

//抽取dt中的特定列"Region","Cur","Year"组合成新的dat DataTable dat = dt.DefaultVie ...

【shell】awk按域去除重复行

首先解释一下什么叫“按域去除重复行”: 有的时候我们需要去除的重复行并不是整行都重复,两行的其中一列的元素相同我们有的时候就需要认定这两行重复,因此有了今天的内容. 去除重复行shell有一个原生命令 ...

linux下使用无线网卡的命令行方法(wifi,iwconfig)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值