实例详细说明linux下去除重复行命令uniq
地址:http://blog.51yip.com/shell/1022.html
一,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就一样了。
实例详细说明linux下去除重复行命令uniq的更多相关文章
- 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)
原文地址:linux下使用无线网卡的命令行方法(wifi,iwconfig) 作者:andyhzw (1)首先关闭开发板的有线网卡 [root@FriendlyARM /]# ifconfig eth ...
- Linux下一款可以使用命令行的pdf阅读器
Zathura是linux下一款用命令行控制打pdf阅读器,并且基本打使用方法和vim很相似.对于喜欢键盘操作的用户来说的确是一个不错的选择. ubuntu下的安装命令: sudo apt-get i ...
随机推荐
- about control %CPU
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #define timesize 200000 ...
- ListCtrl接受拖动文件
[引言] 拖放操作在电脑中很常用,例如我们经常复制文件就可以按住ctrl键不放,然后再拖到另外一个窗口中,或者,可以把一个WORD文档直接拖动到WORD窗口即可打开,以前我使用过VB,里面直接有Ole ...
- MVC开发Markdown编辑器(2)
MVC开发Markdown编辑器(2) MVC Markdown 实时预览 我希望实现一个在线实时预览的Markdown编辑器,左边是编辑处,右边是实时预览界面. 准备工作 引入相关js和css 这里 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- python简单的发送邮件
python 利用smtplib来发送邮件,具体的代码如下 一. 编辑smtp_v2.py vim /home/python/smtp_v2.py #!/usr/bin/env python # -* ...
- CentOS安装中文输入法
yum install "@Chinese Support" System->Preferences->Input Method,勾选"Enable inpu ...
- css的#和.的区别
css的#和.的区别, css的#和.的区别 2009-03-04 14:43fyws 分类:Html/Css | 浏览 1911 次 css的#和.的区别如:#home #h3 { padding ...
- Web前端代码规范与页面布局
一. 规范目的: 为提高工作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,在网站建设中,使结构更加清晰,代码简明有序,有一个更好的前端架构,有利于SEO优化. 二. ...
- php生成excel文件的简单方法
生成excel文件,最简单的莫过于把数据库的数据导入到excel就行了. 生成excel 当然使用的是 phpExcel http://www.jbxue.com/tags/phpexcel.html ...
- Py Split and Count For "PFW Impact Crusher For Sale South Africa"
data = 'As we all know, the impact Crusher is fully used in the transportation, energy, construction ...