我需要在xml文件中更改element(DB_CONNECT_STRING)的值,而无需使用python或must脚本创建新文件。
<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!-- Database server details -->
<DB_CONNECT_STRING>(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=abc)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=cdb)))</DB_CONNECT_STRING>
</properties>
------
<properties>
--------
<DB_CONNECT_STRING>(new data)</DB_CONNECT_STRING>
-------
</properties>
答案 0 :(得分:1)
sed -i
是您要寻找的。 p>
您的情况应该是
sed -i 's#<DB_CONNECT_STRING>.*</DB_CONNECT_STRING>#<DB_CONNECT_STRING>(new data)</DB_CONNECT_STRING>#' <here_is_your_file>
答案 1 :(得分:0)
我将使用xmlstarlet进行简单的XML编辑:
xmlstarlet ed -u /properties/DB_CONNECT_STRING -v "new value" file.xml
如果输出看起来正常,请使用xmlstarlet --inplace ...
保存回文件。