Linux shell修改xml文件


1. xml文件一般都是key-value形式 , 那么我們需要先定位到key ,再取下一行進行整體替換

#!/bin/bash
#需要修改的value的 key
a=ha.zookeeper.quorum
#需要修改成的值
b="node1:2181;node2:2181;node3:2345"
#文件路徑
file=/home/abby/core-site.xml
sed -i "/>$a</{n;s#.*#        <value>$b</value>#}" $file

a= 這個是放key

b= 這個是放value ,我這里加引號是為了防止需要轉義字符

file= 這個是文件路徑

 

我的源文件是這樣

<property>
           <name>fs.defaultFS</name>
           <value>hdfs://cluster</value>
     </property>
     <property>
           <name>hadoop.tmp.dir</name>
           <value>/home/abby/hdfs/tmp</value>
     </property>
     <property>
            <name>ha.zookeeper.quorum</name>
        <value>node1:2181;node2:2181;node3:2181</value>
    </property>

 

 

PS:  有時候我們安裝zookeeper的時候 , myid 是根據機器不同也有區別

  這時候利用redis 的任何地方訪問

  a=`redis-cli -h 192.168.1.X -p 6379 get ip_zk_myid `

  然后放入進去 ,這是一種任何機器獲取全局共享變量的一種實現

  可以根據自己的IP , 去redis服務器獲取自己想要的配置然后修改

  自動化腳本 .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM