在shell脚本中转​​义sed中的“$”

时间:2018-03-21 10:09:57

标签: bash sed

我有一个文件,其中有一堆服务器IP(null或带有一些IP)

场景1(文件内容):

export Server1=""
export Server2=""

情景2:

export Server1="10.10.10.1"
export Server2="10.10.10.2"

在上述两种情况下,我想替换Server1和Server2的值。我尝试了以下

Server1="11.11.11.1"
Server2="11.11.11.2"
sed -i -e 's/export Server1=""/export Server1=\$Server1/g' file.txt
sed -i -e 's/export Server2=""/export Server2=\$Server2/g' file.txt

对于第一种情况,文件被替换为字符串而不是vars的值

File content after substitution
export Server1=$Server1
export Server2=$Server2

我尝试转义“$”字符,但它没有用。我错过了什么?

1 个答案:

答案 0 :(得分:0)

这样的事情会起作用吗?

Server1="111.111.111.111"
echo Server=Server1 | sed -e "s/Server1/$Server1/g"

作为输出:

Server=111.111.111.111