bash sed替换两个特殊字符之间的文本

希望大家都保持安全。

我试图创建一个工作,将需要在两行上替换变量:

hosts: all-qa1:&load_balanced_servers
hosts: all-qa1:!load_balanced_servers

我只需要替换“-”之后和“:”之前的所有内容

它将替换为诸如qa,qa1,qa2,登台,生产等字符串。

评论
  • 别离开我身边
    别离开我身边 回复

    将我的评论转换为答案,以便将来的访问者轻松找到解决方案。

    You may use this simple sed command:

    sed "s/-[^:]*:/-$var:/" file
    

    要不然:

    sed -E "s/-([^:]+):/-$var:/" file
    

    Code Demo