免费注册 查看新帖 |

Chinaunix

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

提取日志文件....... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-28 17:04 |只看该作者 |倒序浏览
标题不知道该怎么写,大侠们先见谅哈:)
日志文件是这样子的...
221.218.252.82 - - [28/Aug/2008:00:00:12 +0800] "GET /DFGunner_S_F_L7.jar?f=w HTTP/1.1" 200 21632
221.218.252.82 - - [28/Aug/2008:00:00:17 +0800] "GET /DFGunner_S_F_L7.jar?f=w HTTP/1.1" 206 21578
61.134.198.179 - - [28/Aug/2008:00:00:21 +0800] "GET /SGZBWZ_Q_S_D608.jar?f=w HTTP/1.1" 200 12692
125.38.26.53 - - [28/Aug/2008:00:00:24 +0800] "GET /BLKb_S_F_K700c.jar?f=w HTTP/1.1" 200 157498
我想提取中括号[]内的 和 双引号""内的东东,
要得到这样的结果

28/Aug/2008:00:00:12 +0800  GET /DFGunner_S_F_L7.jar?f=w HTTP/1.1
28/Aug/2008:00:00:17 +0800  GET /DFGunner_S_F_L7.jar?f=w HTTP/1.1
28/Aug/2008:00:00:21 +0800  GET /SGZBWZ_Q_S_D608.jar?f=w HTTP/1.1
28/Aug/2008:00:00:24 +0800  GET /BLKb_S_F_K700c.jar?f=w HTTP/1.1

不知道用什么方法去匹配, 大侠们多多指点,多谢了先

论坛徽章:
1
处女座
日期:2014-12-23 17:59:27
2 [报告]
发表于 2008-08-28 17:08 |只看该作者
awk -F'[]"[]+' '{print $2" " $4}' urfile

论坛徽章:
0
3 [报告]
发表于 2008-08-28 17:15 |只看该作者
来个sed

sed 's/.*\[\(.*\)\].*"\(.*\)"/\1 \2/' urfile

论坛徽章:
0
4 [报告]
发表于 2008-08-28 17:16 |只看该作者
原帖由 leetaedong 于 2008-8-28 17:08 发表
awk -F'[]"[]+' '{print $2" " $4}' urfile

真是太聪明了!但是
221.218.252.82 - - [[28/Aug/2008:00:00:12 +0800] "GET /[DFGunner_S_F_L7.jar?f=w HTTP/1.1" 200 21632
221.218.252.82 - - [[28/Aug/2008:00:00:17 +0800] "GET /[DFGunner_S_F_L7.jar?f=w HTTP/1.1" 206 21578
61.134.198.179 - - [[28/Aug/2008:00:00:21 +0800] "GET /[SGZBWZ_Q_S_D608.jar?f=w HTTP/1.1" 200 12692
125.38.26.53 - - [[28/Aug/2008:00:00:24 +0800] "GET /BLKb_S_F_K700c.jar?f=w HTTP/1.1" 200 157498

awk -F'[]"[]+' '{print $2" " $4}' temp.log
28/Aug/2008:00:00:12 +0800 GET /
28/Aug/2008:00:00:17 +0800 GET /
28/Aug/2008:00:00:21 +0800 GET /
28/Aug/2008:00:00:24 +0800 GET /BLKb_S_F_K700c.jar?f=w HTTP/1.1

sed应该能实现。

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
5 [报告]
发表于 2008-08-28 17:21 |只看该作者
原帖由 无声无息 于 2008-8-28 17:15 发表
来个sed

sed 's/.*\[\(.*\)\].*"\(.*\)"/\1 \2/' urfile




sed  's/.*\[\(.*\)\] "\(.*\)" .*/\1\2/' file

他不要后面的数字

论坛徽章:
1
处女座
日期:2014-12-23 17:59:27
6 [报告]
发表于 2008-08-28 17:25 |只看该作者
原帖由 Cion 于 2008-8-28 17:16 发表

真是太聪明了!但是
221.218.252.82 - - [[28/Aug/2008:00:00:12 +0800] "GET /[DFGunner_S_F_L7.jar?f=w HTTP/1.1" 200 21632
221.218.252.82 - - [[28/Aug/2008:00:00:17 +0800] "GET /[DFGunner_S_F_L7. ...

呵呵, 你的data跟lz的sample data 格式不一样啊.
自己看怎么分域合理就怎么分啰...

论坛徽章:
0
7 [报告]
发表于 2008-08-28 18:18 |只看该作者

回复 #3 无声无息 的帖子

由衷的佩服各位大侠, 小弟学习了

论坛徽章:
0
8 [报告]
发表于 2008-08-28 18:22 |只看该作者
多多来shell版学习

论坛徽章:
0
9 [报告]
发表于 2008-08-28 18:33 |只看该作者
原帖由 无声无息 于 2008-8-28 18:22 发表
多多来shell版学习

嗯, 一定一定
sed 's/.*\[\(.*\)\].*"\(.*\)"/\1 \2/' urfile  老大能解析一下这个分别是什么意思么?? 多谢啦
或者能介绍sed 这些模式匹配的资料瞅瞅
我只了解sed一些基本的替换之类的, 没见过这么高级的用法

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
10 [报告]
发表于 2008-08-28 18:36 |只看该作者
看置顶贴里面有
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP