日志文档提取信息

607阅读 0评论2009-09-02 greendays
分类:

| | | | IT168安防监控频道全新上线
[] [] [] [] []
  帅哥 (不求无过)
圣骑士




CU编号: 672861
注册:2008-3-3
最后登录: 2009-08-31
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-31 14:33 

有如下一个日志文件,想从日志文件中提取匹配的ip、mac。日志文件比较大,截取部分发上来。希望高手指点下!
lease 192.168.0.5 {
  starts 0 2009/08/30 00:20:15;
  ends 2 2038/01/19 03:14:06;
  cltt 0 2009/08/30 00:20:15;
  binding state active;
  next binding state free;
  hardware ethernet 00:07:e9:cf:02:5c;
  uid "\001\000\007\351\317\002\\";
  client-hostname "MICROSOF-FF1575";
}
lease 192.168.0.5 {
  starts 0 2009/08/30 00:23:24;
  ends 0 2009/08/30 00:23:24;
  tstp 0 2009/08/30 00:23:24;
  cltt 0 2009/08/30 00:23:24;
  binding state abandoned;
  next binding state free;
}
lease 192.168.0.7 {
  starts 0 2009/08/30 00:25:02;
  ends 2 2038/01/19 03:14:06;
  cltt 0 2009/08/30 00:25:02;
  binding state active;
  next binding state free;
  hardware ethernet 00:1f:16:1b:bb:d9;
  uid "\001\000\037\026\033\273\331";
  client-hostname "17726aa6d23b4ed";
}
如上是代码,如果只有IP没有mac,则不提取。上述提取出的代码应为:
192.168.0.5   00:07:e9:cf:02:5c
192.168.0.7   00:1f:16:1b:bb:d9
日志文件比较大,而且要定时刷新。希望代码的执行效率比较高。



您对本贴的看法:
| | |
  帅哥 (Tim)
法师


CU奥运火炬传递手2008
CU编号: 465018
注册:2006-9-13
最后登录: 2009-09-02
帖子:
精华:0







来自:长春
状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-8-31 14:38 

awk -v RS="}" '/ethernet/{print $2,$25}' urfile



您对本贴的看法:

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-09-02
帖子:
精华:0







来自:北京
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-31 14:40 



CODE:
awk '/^lease/{ip=$2}/hardware ethernet/{print ip,gensub(";$","","1",$NF)}' URFILE




您对本贴的看法:
| | |
  帅哥 (不求无过)
圣骑士




CU编号: 672861
注册:2008-3-3
最后登录: 2009-08-31
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-8-31 14:43 

谢谢,非常感谢!!



您对本贴的看法:
| | |
  帅哥
光明使者




CU编号: 690903
注册:2008-4-13
最后登录: 2009-09-02
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-9-1 08:46 



QUOTE:
原帖由 kwokcn 于 2009-8-31 14:40 发表

awk '/^lease/{ip=$2}/hardware ethernet/{print ip,gensub(";$","","1",$NF)}' URFILE

好方法,学习! 可以精简一下么?
awk '/^lease/{ip=$2}/hardware ethernet/{print ip,$NF}' urfile



您对本贴的看法:
| | |

新手




CU编号: 1920238
注册:2009-6-17
最后登录: 2009-09-01
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:10 

很好!



您对本贴的看法:
| | |

骑士



CU编号: 2340978
注册:2009-8-14
最后登录: 2009-09-02
帖子:
精华:0







状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 16:49 

awk -v RS="lease" '/ethernet/{print $1,$24}'  urlfile

学习了,谢谢2楼



您对本贴的看法:

__________________________________

如果你恨一个男人,就把他的女人揍成李宇春,让他无法享受上半身的快乐,
如果你狠一个女人,就把她的男人揍成李宇春,让她无法享受下半身的快乐。
| | |
  帅哥 (狼烟)
天使
八十万色狼总教头



CU编号: 547805
注册:2007-4-5
最后登录: 2009-09-02
帖子:
精华:0







来自:北京
状态:...离线...

[] [] [博客]


[]     顶部
发表于 2009-9-1 18:18 

回复 #5 greendays 的帖子

gensub是为了去";",如果可以保留,那直接$NF也行。



您对本贴的看法:
| | |

» » »

 
上一篇: 请问如果删除匹配行之间的行。 谢谢
下一篇:请教gensub的用法!