免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5134 | 回复: 7
打印 上一主题 下一主题

分割日志 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-02 15:42 |只看该作者 |倒序浏览
1378107072.936      0 10.10.52.4 TCP_MEM_HIT  200 67716 GET http://www.iche.com/ - NONE  text/html
1378107077.007      0 10.10.52.4 TCP_MEM_HIT  200 593 GET http://www.a.com/ - NONE  text/html
1378107176.062     36 10.10.52.4 TCP_MISS  504 1579 GET http://www.b.com/ - FIRST_UP_PARENT  text/html

童鞋们,有上面这样格式的一个日志,其中包含多种url,我想按照url分割日志,将同一个url的日志放在一起,并且将名字命名为分割后日志中url的名字

论坛徽章:
0
2 [报告]
发表于 2013-09-02 18:48 |只看该作者
回复 1# p8712351
  1. import re

  2. result = {}

  3. with open("t.txt", "r") as fdr:
  4.     for line in fdr.readlines():
  5.         urllist = line.rstrip().split(" ")
  6.         for url in urllist:
  7.             if re.match("^http", url):
  8.                 key = url.split("www.")[-1].split(".com")[0]
  9.                 if not result.has_key(key):
  10.                     result[key] = []
  11.                 result[key].append(line.rstrip())

  12. for name, content in result.items():
  13.     with open(name + ".out", "w+") as fdw:
  14.         for line in content:
  15.             fdw.write(line + "\n")
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-09-02 20:44 |只看该作者
本帖最后由 conn2011 于 2013-09-02 20:46 编辑

import re
for row in open(fn,"rb").readlines():
    try:
        open(re.search(r"http://(.+?)/",row).group(1),"w+").write(row)
    except:
        open("nourl.txt","w+").write(row)

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-12 06:20:00
4 [报告]
发表于 2013-09-02 22:00 |只看该作者
readlines(): 这是读出所有行吧,对于日志文件不太合适 

论坛徽章:
0
5 [报告]
发表于 2013-09-03 09:44 |只看该作者
回复 3# conn2011

这个不错,够简洁!
   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
6 [报告]
发表于 2013-09-03 13:29 |只看该作者
不错 3楼

论坛徽章:
0
7 [报告]
发表于 2013-09-08 15:50 |只看该作者
谢谢各位,我参考了1楼的了,之后忘记感谢各位了,抱歉

论坛徽章:
0
8 [报告]
发表于 2013-09-11 20:58 |只看该作者
#!/usr/local/bin/python
#-*- encoding:utf8 -*-
#author:sageskr
import re,time
input_log = open("/home/work/python/temp/log",'r')
input_log.seek(0,0)
while True:
    line = input_log.readline()
    if not line:
        time.sleep(1)
    else:
        regex_url = re.compile(r"http://([^/]+)")
        rt = regex_url.search(line).group(1)
        out_log = open('/home/work/python/temp/%s_log' %(rt),'a')
        out_log.write(line)
        #print >> out_log,line
        out_log.flush()
        out_log.close()


我这个可以实时的采集日志,并汇总输出。希望不吝赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP