用bash脚本中的sed替换另一个文件中的字符串

时间:2011-05-19 12:54:53

标签: linux bash replace sed grep

我正在尝试从bash脚本替换环境变量定义的值(如果存在)。我知道我可以使用sed来执行此操作,但我不确定如何替换环境变量的值?

这是我想做的事情:

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

export MY_ENV=SOME_VALUE

我想用其他内容替换SOME_VALUE。如何使用sed

执行此操作

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:0)

sed -e "s/SOME_VALUE/$MY_ENV/"

这将找到字符串SOME_VALUE并替换$MY_ENV的值。双引号至关重要;除非您想要替换文本中的$MY,...,否则请勿使用单引号。