linux下批量修改存有超大数据量IP文件中的IP内容以及去重排序
作为一个linux的学徒,分享一下自己解决这个小问题的心得,在处理这个问题时使用了一个小技巧感觉很适用,个人发觉linux的终端真滴是非常强大,下面就详细地介绍这个问题以及解决办法吧
问题描述:由于要分析登录Ip所以有很多放有不同Ip的日志文件,首先要将所有log文件合并成一个log文件,并将每一个Ip最后一位修改为0,如,原IP为127.0.0.1,现Ip为127.0.0.0
解决方法:使用linux终端命令
1、先合并多个日志文件为一个日志文件:
cat test1.log test2.log test3.log > test.log
2、这里的test.log包含了所有文件的Ip,如何将这些Ip最后一位改为0呢,重点来了,起初我想用正则表达式修改,未果,遂用了一个小技巧:
1> 先在当前目录下新建一个test_middle.log留着备用
2> cut -d. -f1,2,3 test.log > test_middle.log
3> cat test_middle.log 发现IP类似127.0.0 ,想必大家也知道上个shell语句的作用了吧,没错就是分词,取前三段然后写入到test_middle.log中
4> 再把test_middle.log 中每个Ip末尾加上".0",然后再写入到test.log即可,shell脚本:sed 's/$/&.0/g' test_middle.log > test.log
3、删除文件的空行:sed -i '/^\s*$/d' test.log
4、去重排序:sort test.log | uniq(这样排序内容只显示在终端),如果要获得修改后的内容,可以再写入另外一个文件中,如,sort test.log | uniq > another.log
注:问题的解决方法不止一种,如果朋友们也有好的方法不妨贴出来大家一起学习,在学习的同时还请尊重他人的劳动成果,So,转载请注明出处:http://www.cnblogs.com/ForeverLover/p/5085509.html
linux下批量修改存有超大数据量IP文件中的IP内容以及去重排序的更多相关文章
- Linux下批量修改文件及文件夹所有者及权限
Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt ...
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...
- Linux下批量修改文件名(rename)
原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...
- Linux下批量修改文件名方法
对于在Linux中修改文件名的方式一般我们会用mv命令进行修改,但是mv命令是无法处理大量文件修改名称. 但是在处理大量文件的时候该如何进行批量修改呢? 方法一:mv配合for循环方式进行修改 [ro ...
- linux下批量更改一个目下的目录和文件的权限
对于网站目录我们一般设置目录的权限是755, 而文件的权限是644 ,上传目录另设 比如我们要设置web目录下的所有目录的权限是755,文件的目录是644,那么我们可以批量修改吗?答案是肯定的, 就 ...
- 将Linux下编译的warning警告信息输出到文件中[整理笔记]
Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入 stdin = standar ...
- Linux下批量修改后缀名
1.用find和xargs添加后缀名 [root@node99 yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 root root 5701 Nov 23 2 ...
- linux下批量修改文件名之rename
最近因为突然用到需匹配更换文件名,发现rename命令真是 简单好用,和sed语法及vim 替换很相似. 1. 更改文件名后缀 rename 's/\.txt/\.html/' * 2.增加文件名后缀 ...
- Linux下批量修改文件编码
假设需要将所有afish目录下的php文件,编码从gb2312转到utf8 cd afish find ./ -type f -name “*.php”|while read line;do echo ...
随机推荐
- MagicalRecord,一个简化CoreData操作的工具库
简介 项目主页:https://github.com/magicalpanda/MagicalRecord 实例下载:https://github.com/ios122/MagicalRecord 在 ...
- 解决tomcat was unable to start within问题
这个问题可能大家都熟悉,以前碰到这个问题,重新启动一次eclipse就好了,随着我的一个项目的增大,我发现这种情况越来越多,到底是怎么回事? 出现这个情况的原因有两个,要么是你的数据库连接connec ...
- C#类的一些概念
一.概念 1.类的作用是来模拟现实对象的,一个现实对象可以从两个地方进行描述:特征和行为. 2.类不是你凭空想象的,它只是描述现实对象具体的特征和行为的. 3我们写类只需要写我们所需要的. 4.类是提 ...
- 2015 Multi-University Training Contest 2 1002 Buildings
Buildings Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5301 Mean: n*m列的网格,删除一个格子x,y,用矩形 ...
- html图片上下翻滚展示代码
<marquee behavior="alternate" scrolldelay="1" direction="up" width= ...
- 文本对象模型(Document Object Model)
本文内容: 1. 概述 2. DOM中的节点类型 3. DOM节点的选取 4. 存取元素属性 5.DOM元素的增删 6.小结 ★ 概述 文本对象模型(DOM)是一个能够让程序和脚本动态访问和更新文档内 ...
- 用javascript去掉字符串空格的办法
今天遇到了以关于JavaScript 中怎么去掉 字符串中前后两段的空格 ,我只好向就得js中也后Trim() 函数,后来试试了不 行,就网上找了下解决方法,其中用到了正则表达式 ,整理了下: < ...
- c# dynamic动态类型和匿名类
dynamic类型 简单示例 dynamic expando = new System.Dynamic.ExpandoObject(); //动态类型字段 可读可写 expando.Id = 1; e ...
- #define lowbit(x) ((x)&(-x))原理详解
#define lowbit(x) ((x)&(-x)) 也可以写成如下形式: int Lowbit(x) { return x&(-x); } 例如: 1> x = 1: 十进 ...
- Window下生成OpenSSL自签证书
:OPenSSL下载地址:https://www.openssl.org/source/ 编译好的OpenSSL下载地址: http://slproweb.com/products/Win32Open ...