解析和修改xml用python比較方便,但如果不方便使用python,可以用sed命令簡單替換
例如,欲替換下面一行中的端口號的值:
<param name="ftpPort">21</param>
可以使用:
new_port="22" sed '/\<ftpPort\>/s/[0-9]\{2,5\}/'"$new_port"'/' old.xml > new.xml
說明:
<和>用於單詞邊界的匹配,二者連用相當於整詞匹配
s表示對匹配的行進行替換
[0-9]{2,5}表示替換的源為2~5位數字,為正則表達式
當然,對一些在SHELL里面有特殊含義的字符,要加\轉義后傳遞給sed
'"$new_port"'這里用了SHELL里面一個小技巧,將變量的值傳遞給了sed,確保將端口替換為22而不是$new_port這個字符串,大家可以試一下將$new_port前后4個引號去掉的效果。