shell脚本sed命令匹配当前行修改下一行修改xml配置文件

原错误命令如下:

sed -i '/>javax.jdo.option.ConnectionURLjdbc:mysql://${host_name}:3306/hive?createDatabaseIfNotExist=true&useSSL=false#}' /opt/arbd/hive-1.1.0/conf/hive-site.xml

发现不能引用变量值,于是改为双引号:

sed -i "/>javax.jdo.option.ConnectionURLjdbc:mysql://${host_name}:3306/hive?createDatabaseIfNotExist=true&useSSL=false#}" /opt/arbd/hive-1.1.0/conf/hive-site.xml

但是发现sed命令中的&会被视为替代模式中被替代的整体。

于是给&加上转义:\&。命令变为:

sed -i "/>javax.jdo.option.ConnectionURLjdbc:mysql://${host_name}:3306/hive?createDatabaseIfNotExist=true\&useSSL=false#}" /opt/arbd/hive-1.1.0/conf/hive-site.xml

命令中用#代替了/来区分sed命令的/和字符串/。

你可能感兴趣的:(shell脚本sed命令匹配当前行修改下一行修改xml配置文件)