【发布时间】:2015-02-27 19:08:36
【问题描述】:
我目前有一个脚本可以登录到设备并运行命令。 该命令的结果与此类似:
version: xxxx
date of installation: yyyyy
all other random stuff
which takes up a whole
lot of other lines
由于我在许多不同的设备(相同类型)上运行它,所以关键字version 和date of installation 将始终相同。
我想捕获xxxx 和yyyy,这将因设备而异。
可能性:
捕获整个输出并在版本之后使用 bash 来隔离单词:或在安装之后:
使用tcl本身将version:和installation:后的word保存到一个文件中
我该如何进行选项 2? 我尝试通过tcl的正则表达式浏览,但无法提出解决方案
给出错误的修改代码:
foreach line [split $expect_out(buffer) "\n"] to set $line {
# if ([regexp {^version:} $line ] || [regexp {^date of } $line]){
regexp {^version: (.+)} $line fullmatch vsn
puts $fileId $vsn
regexp {^date of installation: (.+)} $line fullmatch install
puts $fileId $install
#}
}
不太确定 if 语句,所以我取消了它。其余代码仍然返回一个错误,指出 vsn 没有此类变量
【问题讨论】: