代码之家  ›  专栏  ›  技术社区  ›  marcofnmartins

在字符串〔closed〕之前提取IP

  •  0
  • marcofnmartins  · 技术社区  · 11 年前

    我有这段文字:

    111.11.1.111(*)222.22.2.221(mgn)333.33.3.333(srv)
    111.11.1.111(*)333.33.3.333(srv)222.22.2.222(mgn)
    222.22.2.223(mgn)111.11.1.111(*)333.33.3.333(srv)
    

    我只想知道之前的IP(mgn),输出:

    222.22.2.221
    222.22.2.222
    222.22.2.223
    

    谢谢

    1 回复  |  直到 11 年前
        1
  •  0
  •   Avinash Raj    11 年前

    通过grep,

    $ grep -oP '(?:\d{1,3}\.){3}\d{1,3}(?=\(mgn\))' file
    222.22.2.221
    222.22.2.222
    222.22.2.223
    

    通过sed,

    $ sed 's/.*\b\(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\)(mgn).*/\1/g' file
    222.22.2.221
    222.22.2.222
    222.22.2.223