Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63505
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 18
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-17 22:52
文章分类
文章存档

2017年(17)

我的朋友

分类: LINUX

2017-07-06 17:06:13

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长度 = 总长度 - 剩余字符长度。那么一切完美解决了。

 

阅读(1303) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~