用bash脚本中的sed替换另一个文件中的字符串
问题描述:
我想从bash脚本中替换环境变量定义的值(如果存在)。我知道我可以使用sed
来做到这一点,但我不确定,但是,如何替换环境变量的值?用bash脚本中的sed替换另一个文件中的字符串
这是我想做什么:
鉴于此线路(grep
找到)文件:
export MY_ENV=SOME_VALUE
我想用别的东西来代替SOME_VALUE
。我该怎么做与sed
?
答
这种搜索与export MY_ENV=
开头的行并替换该行的其余部分与NEW_VALUE
:
sed 's/^\(export MY_ENV=\).*$/\1NEW_VALUE/'
答
sed -e "s/SOME_VALUE/$MY_ENV/"
此查找该字符串SOME_VALUE
和代用品$MY_ENV
值。双引号是至关重要的;除非您想在替换文本中使用$
,M
,Y
......,否则请不要使用单引号。
另外'sed的-i'将修改就地文件。 – sastanin 2011-05-19 13:03:15