我有一个文件env
,看起来像
...
LEGACY_DATABASE_SERVER=10.0.0.1 SERVER=10.1.1.1
这是我的sed命令:
sed -e "s/SERVER=.*/SERVER=$INSTANCE_IP/g;n" $ENV_FILE > $ENV_FILE.tmp && mv $ENV_FILE.tmp $ENV_FILE
问题是sed
也在取代LEGACY_DATABASE_SERVER
,这不是我想要的。我只想替换SERVER
。
(LEGACY_DATABASE_SERVER是SERVER的超级字符串,我只想替换SERVER)
我错过了什么?
答案 0 :(得分:1)
据推测,你想确保sed知道“SERVER”在行的开头:
sed -e "s/^SERVER=.*/SERVER=$INSTANCE_IP/g;n" $ENV_FILE > $ENV_FILE.tmp && mv $ENV_FILE.tmp $ENV_FILE