使用 sed 将字符串替换为变量
Replace a string with a variable using sed
我的文件中有这个字符串
$vnet_address
而且我在 bash 运行 时间里有这个变量,我想将我的字符串替换为:
$vnet_address=10.1.0.0/16
我在 运行 这个命令时出错:
sed -i "/$vnet_address/ s//$vnet_address/"
我相信这是因为我的变量中的斜杠字符“/”。
怎么办?
您可以使用
sed -i "s,\$vnet_address,${vnet_address}," file
注:
- 正则表达式分隔符替换为
,
$
已使用文字 \
字符正确转义
#!/bin/bash
s='$vnet_address'
vnet_address=10.1.0.0/16
sed "s,\$vnet_address,${vnet_address}," <<< "$s"
# => 10.1.0.0/16
我的文件中有这个字符串
$vnet_address
而且我在 bash 运行 时间里有这个变量,我想将我的字符串替换为:
$vnet_address=10.1.0.0/16
我在 运行 这个命令时出错:
sed -i "/$vnet_address/ s//$vnet_address/"
我相信这是因为我的变量中的斜杠字符“/”。
怎么办?
您可以使用
sed -i "s,\$vnet_address,${vnet_address}," file
注:
- 正则表达式分隔符替换为
,
$
已使用文字\
字符正确转义
#!/bin/bash
s='$vnet_address'
vnet_address=10.1.0.0/16
sed "s,\$vnet_address,${vnet_address}," <<< "$s"
# => 10.1.0.0/16