Chinaunix

标题: 请各位大侠帮忙解决一个取数问题 [打印本页]

作者: 贪睡的小猪    时间: 2011-05-19 09:38
标题: 请各位大侠帮忙解决一个取数问题
本帖最后由 贪睡的小猪 于 2011-05-19 10:14 编辑

Trying 10.101.69.99...
Connected to 10.101.69.99.
Escape character is '^]'.

Software Version:4.8.18
             MAC:00:24:b2:9d:eb:20
              SN29-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
              SN29-7n10-086
Netgear login: admin
Password:
Netgear# showver
1.2.17.4
Netgear# exit

以在trying开始到exit为一段截取其中的内容
或者trying开始到exit的内容变成一行也可以
要得到如下文本
10.101.69.99 MAC:00:24:b2:9d:eb:20 SN29-7n40-04a 1.2.17.4
10.101.69.101 MAC:00:24:b2:cf:6d:00 SN29-7n10-086 1.2.17.4
作者: li2002    时间: 2011-05-19 09:54
awk 'BEGIN{FS="\n";RS="exit\n"}{print substr($1,8,length($1)-11),$6,$7,$11}' urfile|tr -s ' '
作者: yinyuemi    时间: 2011-05-19 10:01
回复 1# 贪睡的小猪


    sed:
  1. sed -nr '/Trying/,/exit/{
  2.         /Trying/h
  3.         /Trying/! H
  4.         /exit/{
  5.                 x
  6.                 s/[^\n]*Trying (([0-9]{2,3}\.){3}[0-9]*).*(MAC[^\n]*).*(SN[^\n]*).*\n([0-9.]*)\n.*/\1 \3 \4 \5/
  7.                 p
  8.         }
  9.         }'
复制代码

作者: 贪睡的小猪    时间: 2011-05-19 10:21
awk 'BEGIN{FS="\n";RS="exit\n"}{print substr($1,8,length($1)-11),$6,$7,$11}' urfile|tr -s ' '
li2002 发表于 2011-05-19 09:54



谢谢楼主的回复,我测试一下好向不行啊。
测试结果
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
root@hz-data-fengxi # awk 'BEGIN{FS="\n";RS="exit\n"}{print substr($1,8,length($
1)-11),$6,$7,$11}' outbak |tr -s ' ' |more
10.101.69.10

.101.69.



.8

n: ad





.101.69.



.8


n: ad
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
作者: denniss    时间: 2011-05-19 10:25

作者: where27    时间: 2011-05-19 10:33
回复 1# 贪睡的小猪
  1. awk -v RS="exit\n" '{sub(/...$/,"",$2);print $2,$12,$13,$(NF-1)}' file
复制代码

作者: zooyo    时间: 2011-05-19 12:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: ywlscpl    时间: 2011-05-19 13:04
回复 1# 贪睡的小猪
  1. awk -F '(MAC)|(SN):' '/Trying/{sub(/Trying /,"");sub(/\.*$/,"");ip=$0}/MAC/{m=$2}/SN:/{print ip,"MAC:"m,"SN:"$2}' file
复制代码

作者: 贪睡的小猪    时间: 2011-05-19 16:28
本帖最后由 贪睡的小猪 于 2011-05-19 16:29 编辑
回复  贪睡的小猪
ywlscpl 发表于 2011-05-19 13:04



   测试报错了,大侠能帮我在看看吗?
root@hz-data-fengxi # awk -F '(MAC)|(SN):' '/Trying/{sub(/Trying /,"";sub(/\.*$
/,"";ip=$0}/MAC/{m=$2}/SN:/{print ip,"MAC:"m,"SN:"$2}' file.txt
awk: syntax error near line 1
awk: bailing out near line 1

root@hz-data-fengxi # cat file.txt
Trying 10.101.69.99...
Connected to 10.101.69.99.
Escape character is '^]'.

Software Version:4.8.18
             MAC:00:24:b2:9d:eb:20
              SN29-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
              SN29-7n10-086
Netgear login: admin
Password:
Netgear# showver
1.2.17.4
Netgear# exit
作者: ywlscpl    时间: 2011-05-19 16:48
sco unix ?

awk  '/Trying/{sub(/\.*$/,"",$2);ip=$2}/MAC/{sub(/ *MAC:/,"");m=$0}/SN:/{sub(/ *SN:/,"");print ip,"MAC:"m,"SN:"$0}' file
作者: 贪睡的小猪    时间: 2011-05-19 17:03
回复 10# ywlscpl


Sun Microsystems Inc.   SunOS 5.9       Generic May 2002
Sourcing //.profile-EIS.....
root@hz-data-fengxi #


是solariis的
作者: jason680    时间: 2011-05-19 17:26
回复  ywlscpl


Sun Microsystems Inc.   SunOS 5.9       Generic May 2002
Sourcing //.profile-E ...
贪睡的小猪 发表于 2011-05-19 17:03


SunOS 5.10
$ nawk  '/Trying/{sub(/\.*$/,"",$2);ip=$2}/MAC/{sub(/ *MAC:/,"";m=$0}/SN:/{sub(/ *SN:/,"";print ip,"MAC:"m,"SN:"$0}' file.txt
10.101.69.99 MAC:00:24:b2:9d:eb:20 SN29-7n40-04a
10.101.69.101 MAC:00:24:b2:cf:6d:00 SN29-7n10-086
作者: 贪睡的小猪    时间: 2011-05-22 18:22
回复 12# jason680

问题已经解决,谢谢各位帮忙。
作者: 贪睡的小猪    时间: 2011-05-22 22:26
回复 8# ywlscpl


    谢谢你的帮助,问题已经解决。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2