【问题标题】:Replace string in another file with sed from bash script用 bash 脚本中的 sed 替换另一个文件中的字符串
【发布时间】:2011-08-28 20:57:18
【问题描述】:

我正在尝试从 bash 脚本替换环境变量定义的值(如果存在)。我知道我可以使用sed 来做到这一点,但我不确定如何替换环境变量的值?

这是我想做的:

给定一个包含此行的文件(使用 grep 找到):

export MY_ENV=SOME_VALUE

我想用其他东西替换 SOME_VALUE。我如何使用sed 做到这一点?

【问题讨论】:

    标签: linux bash replace sed grep


    【解决方案1】:

    这会搜索以export MY_ENV= 开头的行,并将该行的其余部分替换为NEW_VALUE

    sed 's/^\(export MY_ENV=\).*$/\1NEW_VALUE/'
    

    【讨论】:

    • 另外,sed -i 将就地修改文件。
    【解决方案2】:
    sed -e "s/SOME_VALUE/$MY_ENV/"
    

    这将定位字符串SOME_VALUE 并替换$MY_ENV 的值。双引号很重要;不要使用单引号,除非您希望在替换文本中使用 $MY、...。

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 1970-01-01
      • 2017-09-06
      • 2014-07-30
      • 2017-11-17
      • 2012-04-21
      • 2016-05-23
      • 2015-01-16
      • 2013-04-30
      相关资源
      最近更新 更多