Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3031855
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2011-05-19 11:27:20

log记录:
 
Trying 10.1.9.99......
Connected to 10.1.9.99.
Escape character is '^]'.
Software Version:4.8.18
MAC:00:24:b2:9d:eb:20
SN:PP29-7n40-04a
Netgear login: admin
Password:
Netgear# showver
1.2.17.4
Netgear# exit
Trying 10.101.69.101......
Connected to 10.101.69.101.
Escape character is '^]'.
Software Version:4.8.18
MAC:00:24:b2:cf:6d:00
SN:PP29-7n10-086
Netgear login: admin
Password:
Netgear# showver
1.2.17.4
Netgear# exit
 
要求达到下面效果:
10.1.9.99 # MAC:00:24:b2:9d:eb:20 # SN:PP29-7n40-04a # 1.2.17.4
10.101.69.101 # MAC:00:24:b2:cf:6d:00 # SN:PP29-7n10-086 # 1.2.17.4
 
  1. awk 'BEGIN{FS="\n";RS="exit\n";OFS=" # "}{print substr($1,8,length($1)-13),$6,$7,$11}

[解析]

  awk对于这一大段文本的提取,有个诀窍,第一把字段分割符找准,我们这段文本是换行符,第二把记录分割符也要找准,发现没有?文本都是有规律的,“Netgear# exit”就是每段记录的结束。分析好文本后我们就可以在BEGIN中设置好FS、RS、OFS等。接下来开始打印内容,文本的第一行变成了$1,就是“Trying 10.1.9.99......”这行内容,IP地址有长有短?是的,截取IP是个难点,IP开头是第8个字符,长度呢?不确定,这里我们用到了一个新思路,IP长度 = 总长度 - 剩余字符长度。那么一切完美解决了。

 

阅读(9025) | 评论(0) | 转发(3) |
0

上一篇:awk之in的运用实例

下一篇:awk之RT内置变量

给主人留下些什么吧!~~