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
- 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) |