代码之家  ›  专栏  ›  技术社区  ›  Don Rhummy

如何在bash中替换多行regex并存储在变量中?

  •  3
  • Don Rhummy  · 技术社区  · 5 年前

    我想在bash脚本中使用regex进行多行替换,并将该值存储在变量中。下面是 工作:

    str="line 1 replace_me
    line 2 replace_me"
    
    D="${D/replace_me/new_value}"
    echo $D
    

    我得到的结果是:

    第1行新值
    第2行替换

    所以只有第一行被替换了。如何为此设置标志(全局、多行)或使用diff regex方式?

    1 回复  |  直到 5 年前
        1
  •  4
  •   wjandrea Jon Clements    5 年前

    添加另一个斜线使其成为全局搜索:

    str="line 1 replace_me
    line 2 replace_me"
    
    echo "${str//replace_me/new_value}"
    

    输出:

    line 1 new_value
    line 2 new_value