【发布时间】:2011-08-28 20:57:18
【问题描述】:
我正在尝试从 bash 脚本替换环境变量定义的值(如果存在)。我知道我可以使用sed 来做到这一点,但我不确定如何替换环境变量的值?
这是我想做的:
给定一个包含此行的文件(使用 grep 找到):
export MY_ENV=SOME_VALUE
我想用其他东西替换 SOME_VALUE。我如何使用sed 做到这一点?
【问题讨论】:
标签: linux bash replace sed grep
我正在尝试从 bash 脚本替换环境变量定义的值(如果存在)。我知道我可以使用sed 来做到这一点,但我不确定如何替换环境变量的值?
这是我想做的:
给定一个包含此行的文件(使用 grep 找到):
export MY_ENV=SOME_VALUE
我想用其他东西替换 SOME_VALUE。我如何使用sed 做到这一点?
【问题讨论】:
标签: linux bash replace sed grep
这会搜索以export MY_ENV= 开头的行,并将该行的其余部分替换为NEW_VALUE:
sed 's/^\(export MY_ENV=\).*$/\1NEW_VALUE/'
【讨论】:
sed -i 将就地修改文件。
sed -e "s/SOME_VALUE/$MY_ENV/"
这将定位字符串SOME_VALUE 并替换$MY_ENV 的值。双引号很重要;不要使用单引号,除非您希望在替换文本中使用 $、M、Y、...。
【讨论】: