【问题标题】:Parse line in bash, using nova to get the line在 bash 中解析行,使用 nova 获取行
【发布时间】:2013-08-12 22:52:12
【问题描述】:

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

新星列表 | 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 脚本中提取它?

谢谢!

【问题讨论】:

    标签: bash openstack


    【解决方案1】:

    或者使用 sed:

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

    请注意,此类解决方案通常很脆弱。如果您想要一个健壮的程序,您应该确保您了解字段的语法,以便简单的正则表达式不会在您之前未见过的字符出现在输出中时中断。例如,如果 = 符号可以出现在任何其他字段中,则该符号将中断。

    【讨论】:

      【解决方案2】:

      试一试:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 2015-08-12
        • 1970-01-01
        • 2013-09-25
        • 2011-01-17
        • 2012-02-21
        • 1970-01-01
        相关资源
        最近更新 更多