Linux shell修改xml檔案

2022-06-04 19:57:08 字數 809 閱讀 1012

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$b#}

" $file

a= 這個是放key

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

file= 這個是檔案路徑

我的原始檔是這樣

fs.defaultfs

hdfs://

cluster

hadoop.tmp.dir

/home/abby/hdfs/tmp

ha.zookeeper.quorum

node1:2181;node2:2181;node3:2181

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

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

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

然後放入進去 ,這是一種任何機器獲取全域性共享變數的一種實現

可以根據自己的ip , 去redis伺服器獲取自己想要的配置然後修改

自動化指令碼 .

Linux Shell指令碼讀寫XML檔案

在linux下如何用shell指令碼讀寫xml?現有乙個config.xml xml version 1.0 encoding utf 8 config server ip 192.168.1.45 server ip server port 1209 server port repository ...

Linux Shell指令碼讀寫XML檔案

在linux下如何用shell指令碼讀寫xml?現有乙個config.xml 192.168.1.45 1209 home john 需要修改裡面的 server ip server port and import path 用shell指令碼的引數 1,2,3來寫入。思路1 用sed實現 首先想到...

Linux Shell指令碼讀寫XML檔案

在linux下如何用shell指令碼讀寫xml?現有乙個config.xml 192.168.1.45 1209 home john 需要修改裡面的 server ip server port and import path 用shell指令碼的引數 1,2,3來寫入。思路1 用sed實現 首先想到...