作为一个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内容以及去重排序的更多相关文章

  1. Linux下批量修改文件及文件夹所有者及权限

    Linux下批量修改文件及文件夹所有者及权限需要使用到两个命令,chmod以及chown 例:对/opt/Oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 700 /opt ...

  2. linux下导入、导出mysql数据库命令 下载文件到本地

    一.下载到本地 yum install lrzsz sz filename  下载 rz filename  上传   linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...

  3. Linux下批量修改文件名(rename)

    原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...

  4. Linux下批量修改文件名方法

    对于在Linux中修改文件名的方式一般我们会用mv命令进行修改,但是mv命令是无法处理大量文件修改名称. 但是在处理大量文件的时候该如何进行批量修改呢? 方法一:mv配合for循环方式进行修改 [ro ...

  5. linux下批量更改一个目下的目录和文件的权限

    对于网站目录我们一般设置目录的权限是755, 而文件的权限是644  ,上传目录另设 比如我们要设置web目录下的所有目录的权限是755,文件的目录是644,那么我们可以批量修改吗?答案是肯定的, 就 ...

  6. 将Linux下编译的warning警告信息输出到文件中[整理笔记]

    Linux中,脚本语言环境中,即你用make xxx即其他一些普通linux命令,比如ls,find等,不同的数字,代表不同的含义: 数字 含义 标准叫法0 标准输入  stdin = standar ...

  7. Linux下批量修改后缀名

    1.用find和xargs添加后缀名 [root@node99 yum.repos.d]# ls -ltr total 32 -rw-r--r--. 1 root root 5701 Nov 23 2 ...

  8. linux下批量修改文件名之rename

    最近因为突然用到需匹配更换文件名,发现rename命令真是 简单好用,和sed语法及vim 替换很相似. 1. 更改文件名后缀 rename 's/\.txt/\.html/' * 2.增加文件名后缀 ...

  9. Linux下批量修改文件编码

    假设需要将所有afish目录下的php文件,编码从gb2312转到utf8 cd afish find ./ -type f -name “*.php”|while read line;do echo ...

随机推荐

  1. struts2基础——请求与响应、获取web资源

    一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...

  2. servlet中的细节

    Get方法有大小限制:1024个字符.这些信息使用 Query_String头传递,并通过Query_String环境变量访问.Post方法:请求体信息使用FromData头传递.读取所有表单参数:g ...

  3. 常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

    什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们 ...

  4. (Python学习4)List对象

    1.PyListObject对象 typedef struct { PyObject_VAR_HEAD PyObject **ob_item; Py_ssize_t allocated; } PyLi ...

  5. javascript运算符的优先级

    最基木的运算符优先级就是所谓的“先乘除,后加减”.对于优先顺序处于同一层次上的运算符,按照从左到右出现的顺序计算.下面给出javascript定义的所有运算符的优先级.运算符 优先顺序成员选择.括号. ...

  6. IIS配置ASP.NET和服务器错误页

    以下两种方法均为全站出错处理 方法一: 1.在Web.config配置文件中<system.web></system.web>中添加<customErrors mode= ...

  7. sql server2008中左连接,右连接,等值连接的区别

    数据库中的连接我了解到有left join,right join,inner join这些,以下是它们的区别: 1)左连接(left join):先取出a表的所有数据,再取出a.b表相匹配的数据 2) ...

  8. 与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl

    [源码下载] 与众不同 windows phone (49) - 8.1 新增控件: 概述, ContentDialog, MapControl 作者:webabcd 介绍与众不同 windows p ...

  9. j2ee log4j集中式日志解决方案logpool v0.3

    V0.3相对于v0.2的更新如下:

  10. CSS属性选择器温故-4

    1.属性选择器就是通过元素属性来找到元素 2.属性选择器语法 CSS3遵循了惯用的编码规则,通配符的使用提高了样式表的书写效率,也使CSS3的属性选择器更符合编码习惯 3.浏览器兼容性 CSS选择器总 ...