在bash中解析行,使用nova获取行

时间:2013-08-12 22:52:12

标签: bash openstack

所以我运行以下命令来提取我感兴趣的实例的信息:

nova list | grep derpInstance

我明白了:

| 37696b22-1afa-40fa-81cc-241493ef09e1 | derpInstance    | ACTIVE | None       | Running     | devcos-shared-net-10-9-254-0_24=10.9.254.129 |

我对IP地址(=符号后的内容)感兴趣,如何在shell脚本中提取它?

谢谢!

2 个答案:

答案 0 :(得分:1)

或者使用sed:

nova list | grep derpInstance | sed 's/.*=//;s/ .*//'

请注意,像这样的解决方案通常很脆弱。如果你想要一个健壮的程序,你应该确保你知道字段的语法,这样简单的正则表达式就不会在你以前没见过的字符出现在输出中时中断。例如,如果在任何其他字段中出现=符号,则该符号将会中断。

答案 1 :(得分:0)

尝试一下:

nova list | grep derpInstance|grep -Po '(?<==)[0-9.]*'