在用expect写一个自动完成远程网络设备管理脚本的时候,发现TCL脚本自带的处理结果功能还不够,于是自己根据遇到的情况添加了部分函数,可以方便的处理expect返回的远程结果,
ps,这个公用函数库与运行脚本的位置在前一篇文章中已经介绍过,这里的内容也就是commonlib.exp中的内容
1, get result (line-row)-(line-row)
这个函数返回以(起始行,起始列)-(结束行,结束列)的结果
eg: get_log_linerow $lines 1 2 3 4
返回$lines中第一行第二列到第三行第四列的值
还需判断起始行结束行的大小~
2,#get result (line-mark)-(line-mark)
大致同1,不过不再是从行的列数开始,而是给定标记,
eg: get_log_linemark $lines 1 "mm" 2 "kk"
返回第一行从mm开始到第二行kk结束的地方,否则返回Unfind
3,#get result (mark)-(mark)
返回结果中,从mark开始到另一个mark结束的地方
eg, get_log_mark $lines "kk" "mm"
返回$lines中从"kk"开始到"mm"结束的地方,否则返回Unfind
其中"$$"表示行尾,"^^"表示行首
4,#get result (line-words)
返回标志行中的指定单词,发现这个最好用了~~
eg,get_log_line $lines 3
返回第三行
get_log_line $lines 3 1 2 3
返回第三行前3个单词
get_log_line $lines "kk"
返回第一次含有kk的行
get_log_line $lines "kk" 1 2 3
返回第一次含有kk行的前三个字符