Chinaunix

标题: 大家见过sed替换以后会这样的吗? [打印本页]

作者: 飘动de心    时间: 2016-06-12 17:51
标题: 大家见过sed替换以后会这样的吗?
本帖最后由 飘动de心 于 2016-06-12 17:55 编辑

配置文件里,有一项为
spring.datasource.url=jdbc:mysql://192.168.1.100:3306/k_app?useUnicode=true&characterEncoding=utf8

脚本如下
  1.         url="jdbc:mysql://${database_url}:${database_port}/${database_name}?useUnicode=true&characterEncoding=utf8"
  2.         echo "url:"$url
  3.         var1=`cat ${conf_dir}app.conf |grep spring.datasource.url|cut -d'=' -f2-`
  4.         echo "var1:"$var1
  5.         sed -i "s|${var1}|${url}|g" ${conf_dir}app.conf
复制代码
运行结果:
  1. url:jdbc:mysql://172.16.1.100:3306/us-service?useUnicode=true&characterEncoding=utf8
  2. var1:jdbc:mysql://192.168.1.100:3306/k_app?useUnicode=true&characterEncoding=utf8
复制代码
cat配置文件,替换结果是这样:
  1. spring.datasource.url=jdbc:mysql://172.16.1.100:3306/us-service?useUnicode=truejdbc:mysql://192.168.1.100:3306/k_app?useUnicode=true&characterEncoding=utf8^McharacterEncoding=utf8
复制代码
有大神知道哪里错了吗,打印url1跟var1是正确的


作者: WilliBhamlll    时间: 2016-06-12 17:56
本帖最后由 WilliBhamlll 于 2016-06-12 17:56 编辑

url="jdbc:mysql://${database_url}:${database_port}/${database_name}?useUnicode=true\&characterEncoding=utf8"
改改
作者: jason680    时间: 2016-06-12 17:57
回复 1# 飘动de心

$ echo '123&abc' | sed 's|123&abc|456&abc|'
456123&abcabc

$ echo '123&abc' | sed 's|123&abc|456\&abc|'
456&abc



   
作者: 飘动de心    时间: 2016-06-12 17:58
本帖最后由 飘动de心 于 2016-06-12 17:59 编辑

回复 2# WilliBhamlll

.....  谢谢@WilliBhamlll ,不过这变量里的也会被特殊处理?
作者: WilliBhamlll    时间: 2016-06-12 18:01
回复 4# 飘动de心


    是的。
作者: 飘动de心    时间: 2016-06-12 18:03
谢谢json,举例很容易帮助新手学习回复 3# jason680


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2