【发布时间】:2015-08-04 20:42:12
【问题描述】:
第一篇文章在这里。尝试使用正则表达式仅捕获来自 SNMP 回复的整数输出。我使用正则表达式测试器来提出正确的模式匹配,但 sed 拒绝输出结果。现在这只是一个原始的事实调查脚本,它会发展成更复杂的东西,但现在这是我的绊脚石。
对snmpget语句每一行的回复是:
IF-MIB::ifInOctets.1001 = Counter32: 692749329
IF-MIB::ifOutOctets.1001 = Counter32: 3119381688
我只想捕获“Counter32:”之后的值,而正则表达式 (?
#!/bin/sh
SED_IFACES="-e '/(?<=: )(\d+)/g'"
INTERNET_IN=`snmpget -v 2c -c public 123.45.678.9 1.3.6.1.2.1.2.2.1.10.1001` | eval sed $SED_IFACES
INTERNET_OUT=`snmpget -v 2c -c public 123.45.678.9 1.3.6.1.2.1.2.2.1.16.1001` | eval sed $SED_IFACES
echo $INTERNET_IN
echo $INTERNET_OUT
【问题讨论】: