我正在尝试检索从命令行返回的特定数据。这是我的命令行:
snmpwalk -v2c -c community localhost 1.3.6.1.2.1.2 | grep tun0
哪个给我作为结果:
IF-MIB::ifDescr.4 = STRING: tun0
在这个结果中,我想撤退4
。我以为使用正则表达式,但是也许有一种更简单的方法来获取它。
我尝试过的正则表达式:
\ifDescr.\s+\K\S+
https://regex101.com/r/9X04MD/1
[\n\r].*ifDescr.\s*([^\n\r]*)
https://regex101.com/r/9X04MD/2
我想通过
这样的单个命令行来获取它 snmpwalk -v2c -c community localhost 1.3.6.1.2.1.2 | grep tun0 | ?
答案 0 :(得分:1)
有很多选项不涉及使用GNU grep的实验性-P
选项。例如,仅提供示例输入即可,这是使用任何sed的一种方法:
$ echo "$out" | sed 's/.*\.\([0-9]\).*tun0/\1/'
4
或任何awk:
$ echo "$out" | awk -F'[. ]' '/tun0/{print $2}'
4
答案 1 :(得分:0)