【问题标题】:Regexp to match snmp Oid by index正则表达式按索引匹配 snmp Oid
【发布时间】:2015-10-29 12:39:51
【问题描述】:

表演后 snmpwalk -v 2c -c public hostname 1.3.6.1.2.1.17.7.1.2.2.1.2 命令我有以下输出:

SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.1.0.15.61.132.159.255 = INTEGER: 0
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.1.0.192.159.134.194.92 = INTEGER: 1
SNMPv2-SMI::mib-2.17.7.1.2.2.1.2.2.0.21.242.169.11.194 = INTEGER: 23

我需要通过 ifIndexes 查找 Oid 来添加正则表达式。例如 ifIndex'es 0 和 23 我应该有以下输出:

2.17.7.1.2.2.1.2.1.0.15.61.132.159.255
2.17.7.1.2.2.1.2.2.0.21.242.169.11.194

【问题讨论】:

  • 发布你的尝试...

标签: regex bash snmp


【解决方案1】:

使用 GNU grep 将其附加到您的命令中:

| grep -Po -- '-\K[^-]*(?= = INTEGER: '"23"'$)'

输出:

2.17.7.1.2.2.1.2.2.0.21.242.169.11.194

随意将 23 替换为变量。

【讨论】:

  • 谢谢。但是我怎样才能通过多个 ifIndex 进行 grep。当我在表达式中添加更多它们时,我的输出不正确 | grep -Po -- '-\K[^-]*(?= = INTEGER: '"0"\|"23"'$)'
  • 将我的答案23 替换为(0|23)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
  • 2011-03-31
  • 2016-05-23
相关资源
最近更新 更多