首页 > 解决方案 > 带变量的 Sed

问题描述

我有一个这种格式的配置文件

http://link:port/username/password/1234

我使用此代码将 Username1/Password1 替换为不同的 Username2/Password2

sed -i -e 's/\/Username1\/Password1/\/Username2\/Password2/g' /etc/config.cfg

现在我想让这个像

$UsernameOLD = Username1
$PasswordOLD = Password1

$UsernameNEW = Username2
$PasswordNEW = Password2

sed -i -e 's/\/$UsernameOLD\/$PasswordOLD/\/$UsernameNEW\/$PasswordNEW/g' /etc/config.cfg

谁能帮我准备好这个?

标签: sed

解决方案


我找到了我必须使用双引号而不是 ' 的解决方案

工作命令如下所示:

UsernameOLD=MyOldUsername
PasswordOLD=MyOldPassword
UsernameNEW=MyNewUsername
PasswordNEW=MyOldUsername

sed -i -e "s/\/$UsernameOLD\/$PasswordOLD/\/$UsernameNEW\/$PasswordNEW/" /etc/config.cfg

推荐阅读