- 论坛徽章:
- 0
|
APNID PDPADD EQOSID VPAA PDPCH PDPTY PDPID
117 401 NO IPV4 1
1 401 NO IPV4 2
2 401 NO IPV4 3
85 401 NO IPV4 4
152 401 NO IPV4 5
这个是输出信息,要用expect -re 来捕获,我要的值是 PDPID这列其中的5
和它同一行的152这个值是固定的,怎么获取?
用其他工具可以调试吗?比如sed grep,给个例子,捕获到后会不会打印出来?
下面是waker给的,我不知道怎么去调试成功
expect -re {\n[ \t]+152[^\n]*[ \t]([0-9]+)[ \t\r\n]+}
set expect_out(1,string)
你的数据是这样的,加上上一行 就是 \n空格或tab 152 所以我就写了 \n[ \t]152
哦,明白空格或者tab,用[]表示或者,是吧
再看你要的值5在行尾,但俺不知道行的结尾到底是\r\n还是\n而且有没有空格
所以我写了 [0-5]+[ \t\r\n]+
+是量词表示前面的字符有1-n个
下面写152到 5中间的部分,因为你有很多行,但152和5在一行,所以它们之间一定没有\n
所以就写了 [^\n]*表示不为\n的0-n个字符
再对照manpage看看再,正则这东西讲起来非常费劲
最后我把要取出的部分用()引用起来,用expect_out获取 |
|