linux(centos8):用uniq去除文本中重复的行(去重)
一,uniq命令的用途
1, 作用:
从输入文件或标准输入中找到相邻的匹配行,
并写入到输出文件或标准输出
2, 使用时通常会搭配sort使用
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看uniq命令所属的rpm包
[root@blog nginxlogs]$ whereis uniq
uniq: /usr/bin/uniq /usr/share/man/man1/uniq.1.gz /usr/share/man/man1p/uniq.1p.gz [root@blog nginxlogs]$ rpm -qf /usr/bin/uniq
coreutils-8.30-6.el8.x86_64
默认已安装到了centos8系统,如果找不到命令或误删除,
可以用dnf来安装
[root@blog nginxlogs]$ dnf install coreutils
三,查看uniq的版本和帮助
1,查看版本
[root@blog nginxlogs]$ uniq --version
uniq (GNU coreutils) 8.30
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Written by Richard M. Stallman and David MacKenzie.
2,查看帮助
[root@blog nginxlogs]$ uniq --help
3,查看手册
[root@blog nginxlogs]$ man uniq
四,uniq命令的使用例子
1,增加统计重复出现的次数
#-c: 增加显示当前行重复出现的次数
[root@blog nginxlogs]$ cut -d ' ' -f 1 file_meet.access_log | sort | uniq -c
1 106.15.200.123
875 223.72.53.168
9 47.101.200.88
9 47.101.58.46
...
当然可以加一个倒排
[root@blog nginxlogs]$ cut -d ' ' -f 1 file_meet.access_log | sort | uniq -c | sort -k1 -nr
875 223.72.53.168
9 47.101.58.46
9 47.101.200.88
1 106.15.200.123
...
2,只显示有重复的行
#-d: 只显示重复出现的行
[root@blog nginxlogs]$ cut -d ' ' -f 1 file_meet.access_log | sort | uniq -d
223.72.53.168
47.101.200.88
47.101.58.46
...
3,仅显示没有重复仅出现一次的行
#-u:uniqe
[root@blog nginxlogs]$ cut -d ' ' -f 1 file_meet.access_log | sort | uniq -u
106.15.200.123
4,其他参数:
-s: 指定在每行开始处需要忽略的字符数
-i: 忽略每行字母的大小写
五,uniq命令使用需要注意的地方:
如果重复的行不相邻,uniq 命令不会起作用
所以通常我们会搭配sort命令使用,先排序,使重复的行相邻出现,
这样uniq命令就可以生效了
六,查看centos的版本
[root@blog nginxlogs]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
linux(centos8):用uniq去除文本中重复的行(去重)的更多相关文章
- python去除文件中重复的行
		去除文件中重复的行 import os with open('db.txt','r',encoding='utf-8') as read_f,\ open('.db.txt.swap','w',enc ... 
- php去除数组中重复数据
		<?php /** * 去除数组中重复数据 * by www.jbxue.com **/ $input = array("a" => "green" ... 
- [转]java去除List中重复的元素
		java去除List中重复的元素 如果用Set ,倘若list里边的元素不是基本数据类型而是对象, 那么请覆写Object的boolean equals(Object obj) 和int ... 
- 关于iOS去除数组中重复数据的几种方法
		关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ... 
- php 去除数组中重复元素
		去除数组中重复元素, 找了下可以一下两个函数 php array_flip()与array_uniqure() $arr = array(…………) ;// 假设有数组包含一万个元素,里面有重复的元素 ... 
- JS去除数组中重复值的四种方法
		JS去除数组中重复值的四种方法 1 /// <summary> o[this[i]] = ""; } } newArr.p ... 
- javascript 去除字符串中重复字符
		/** * 去除字符串中重复的字符,以下提供2种方法, * removeRepeat()为自己所想: * removeRepeat2()参考网上思路补充的 * removeRepeat3()敬请期待· ... 
- SQL Server 复制表结构以及数据,去除表中重复字段
		--复制另一个数据库中的某张表的结构及数据--select * from Test.dbo.TestTable(查询表中所有数据) --into [表名] 插入当前数据库新表,如果没有该表就创建 se ... 
- 集合求交集  &  去除列表中重复的元素
		集合求交集: set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} 交集:set3 = set1 & set2 print(ste3) #结果为{4,5} 或者ste1. ... 
随机推荐
- Java并发编程之闭锁与栅栏
			一.前言 闭锁与栅栏是在多线程编程中的概念,因为在多线程中,我们不能控制线程的执行状态,所以给线程加锁,让其按照我们的想法有秩序的执行. 闭锁 CountDownLatch,实例化时需要传入一个int ... 
- SpringCloud实战 | 第四篇:SpringCloud整合Gateway实现API网关
			一. 前言 微服务实战系列是基于开源微服务项目 有来商城youlai-mall 版本升级为背景来开展的,本篇则是讲述API网关使用Gateway替代Zuul,有兴趣的朋友可以进去给个star,非常感谢 ... 
- 血的教训!千万别在生产使用这些 redis 指令
			哎,最近小黑哥又双叒叕犯事了. 事情是这样的,前一段时间小黑哥公司生产交易偶发报错,一番排查下来最终原因是因为 Redis 命令执行超时. 可是令人不解的是,生产交易仅仅使用 Redis set 这个 ... 
- 深入研究Broker是如何持久化的
			前言 上篇文章王子和大家讨论了一下RocketMQ生产者发送消息的底层原理,今天我们接着这个话题,继续深入聊一聊RocketMQ的Broker是如何持久化的. Broker的持久化对于整个Rocket ... 
- tensorflow-GPU配置
			在使用GPU版的TensorFlow跑程序的时候,如果不特殊写代码注明,程序默认是占用所有主机上的GPU,但计算过程中只会用其中一块.也就是你看着所有GPU都被占用了,以为是在GPU并行计算,但实际上 ... 
- CCNP:重发布及实验
			重发布(又:重分布.重分发):一台设备同时运行于两个协议或两个进程,默认从两端学习到的路由条目不共享:重发布技术就是人为的进行共享. 一 满足: 1.必须存在ASBR --- 自治系统边界路由器-- ... 
- spring的aop编程(半自动、全自动)
			1.spring的半自动代理(从spring中获取代理对象) (1)spring中的通知类型 spring中aop的通知类型有五种: 前置:在目标方法执行前实施加强 后置:在目标方法执行后实施加强 环 ... 
- Typora,你好!
			初识Typora 1.标题 一个井号+空格+回车 =一级标题 两个井号+空格+回车 =二级标题 三个井号+空格+回车 =三级标题 四个井号+空格+回车 =四级标题 快捷键的话: 按ctrl + 1 就 ... 
- springboot集成swagger文档
			//此处省略springboot创建过程 1.引入swagger相关依赖(2个依赖必须版本相同) <dependency> <groupId>io.springfox</ ... 
- python3 结束进程
			为什么会去结束进程呢?因为在做appium中遇到H5跳转了多个页面的时候,出现了获取的pagesource是上一个页面的情况,这时候就需要先退出webview,然后杀掉chromedriver的进程, ... 
