sed正则中使用变量问题

Posted liusingbon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

结束。




以上是关于sed正则中使用变量问题的主要内容,如果未能解决你的问题,请参考以下文章

linux 正则表达式,sed使用

在 sed 中使用反向引用正则表达式

shell脚本之sed使用----替换变量转义字符

转载:shell脚本之sed使用----替换变量转义字符

使用正则表达式和 sed 时跳过前 n 行?

在 grep 和 sed 中正确使用正则表达式开关