zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [C和指针]第一部分
    [Effective Java]第十章 并发
    [C程序设计语言]第五部分
    [C程序设计语言]第四部分
    git clone速度太慢解决方案
    Golang使用Redis
    删除校管理员的多余数据
    jQuery ajax同步的替换方法,使用 $.Deferred()对象
    打包并删除临时文件
    通过vjudge刷Uva的题目(解决Uva网站打开慢的问题)
  • 原文地址:https://www.cnblogs.com/ForeverLover/p/5085509.html
Copyright © 2011-2022 走看看