linux uniq命令用法
用法: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命令用法的更多相关文章
- linux uniq 命令实用手册
Linux uniq 命令用于处理文本内容中的重复行. 这里我们只介绍其常用参数,其完整用法可参见man uniq. 例如,我们有如下文件内容: >>> cat log.txt __ ...
- linux mail命令用法
在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...
- Linux uniq 命令
Linux uniq 命令 Linux 命令大全 Linux uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用. uniq 可检查文本文件中重复出现的行列. 语法 ...
- (转)linux paste命令用法详解
linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...
- [转]linux uniq 命令详解
转自:http://blog.csdn.net/tianmohust/article/details/6997683 uniq 命令 文字 uniq 是LINUX命令 用途 报告或删除文件中重复的 ...
- Linux——基础命令用法(下)
一.linux用户 1.什么是用户 用户是用来运行某一些进程.拥有某一些文件或目录. 在Linux里面,用户分成三大类:root用户.系统用户.普通用户. 用户是用UID来唯一标识身份的,且root用 ...
- Linux uniq命令
200 ? "200px" : this.width)!important;} --> 介绍 uniq命令是一个文本去重命令,它能对标准输入和文本文件进行去重操作,并且能将结 ...
- Linux——基础命令用法(上)
一.Linux基础命令 1.Linux命令行的格式 命令行的格式为:用户名+主机名+当前工作目录 输入内容的命令格式为:命令 [-短选项/--长选项] [参数] [root@localhost ~]# ...
- linux find命令用法
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...
随机推荐
- 1264 - Out of range value for column
现象:新建数据库,字段类型是tinyint,然后插入数据,数值为128,报标题错误 原因:如果在新建数据库的时候没有指定为unsigned,那么就是有符号的,所以tinyint的范围是-128~127 ...
- Qt编写气体安全管理系统6-地图监控
一.前言 地图监控主要是提供一个地图(可以是平面的也可以是立体彩色的,一般建议鸟瞰图,有3D感),然后设备在对应的地图上,可以切换地图来查看对应区域的设备,一般来说一个区域会有一个地图文件,设备在地图 ...
- 123457123456#1#----com.MC.CarWashKidsGames234----前拼后广--洗车游戏mc-mc1111
com.MC.CarWashKidsGames234----前拼后广--洗车游戏mc-mc1111
- 常用快捷键 & BLOG & Website
blog http://kejianttt.com/http://pptdesign.blogbus.com/ Website http://www.webdesignerdepot.com/ 素 ...
- web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ...
- 使用video.js 7在html中播放rtmp视频流
1.背景 最近要做摄像头视频的展示,不想使用硬件方的专用插件,所以计划视频推送到SRS服务器,浏览器再通过rtmp协议显示,类似于直播. 经查询,了解到可以用ckplayer(有许可条款)和video ...
- Net Core 3 Mvc AliPay Demo
AliPay - PC 钻研了几天的Webpack, 这几天回归了我的本行.Net, 跟随大佬的脚步, 开始做上了支付宝的支付. 创建项目 首先创建一基于.Net Core3.0的MVC项目, 然后引 ...
- juc-locks包
1. 简介 java.util.concurrent.locks 包含常用的锁实现,重点研究AbstractQueuedSynchronizer.ReentrantLock.ReentrantRead ...
- 【转帖】【PCI-E通道是个什么东西?他是干啥的?】
[PCI-E通道是个什么东西?他是干啥的?] https://zhuanlan.zhihu.com/p/62426408 前言: 经常接触台式机的同学肯定绕不开PCI-E这个名词,因为这是台式机里最重 ...
- (一)Spring Security Demo 登陆与退出
文章目录 配置springSecurityFilterChain过滤器 配置身份验证 加载配置 登陆项目 退出 下面的代码需要spring环境的支持: 看这个系列博客之前,需要这个博客,大概了解下 s ...