sed正则中使用变量问题

使用下列正则替换时,IP没有生效。

new_ip=172.16.2.21

sed -i 's/172.16.2.20/$new_ip/' ./java_api/config/application.yml

解决:把正则中的$new_ip,使用单引号引起来:'$new_ip',即:

sed -i 's/172.16.2.20/‘$new_ip’/' ./java_api/config/application.yml

拓展,想在正则中使用变量的方法:

1. eval  sed ‘s/$a/$b/’ filename
2. sed “s/$a/$b/” filename
3. sed ’s/‘$a’/’$b’/’ filename 
4. sed s/$a/$b/ filename

结束。

原文地址:https://www.cnblogs.com/liusingbon/p/13995444.html