XML文件变量提取与源文件内容替换的技术实现问询
实现XML文件内容替换的第二步操作
任务说明
已完成第一步:从源文件s.xml和目标文件t.xml中提取指定变量值并保存至T_XML_PFILE.log;
需完成第二步:利用T_XML_PFILE.log中的变量,将s.xml的内容替换为t.xml的对应值,最终使s.xml与t.xml内容一致。
现有文件信息
- 源文件
s.xml当前内容:
<global_db_name oa_var="s_dbSid">PEBS2SIT</global_db_name> <db_name_lower oa_var="s_dbSidLower">pebs2sit</db_name_lower>
- 目标文件
t.xml内容:
<global_db_name oa_var="s_dbSid">PEBSPAT</global_db_name> <db_name_lower oa_var="s_dbSidLower">pebspat</db_name_lower>
T_XML_PFILE.log中的变量内容:
T_PDBNAME_C=PEBSPAT T_PDBNAME_S=pebspat S_PDBNAME_C=PEBS2SIT S_PDBNAME_S=pebs2sit
实现步骤
- 加载日志中的变量到Shell环境
执行命令,将日志里的变量定义导入当前Shell会话:
source T_XML_PFILE.log
- 替换
s.xml中的内容
使用sed命令批量替换源文件中的旧值为目标值,可选择以下两种方式:
- 拆分执行:
sed -i "s/${S_PDBNAME_C}/${T_PDBNAME_C}/g" s.xml sed -i "s/${S_PDBNAME_S}/${T_PDBNAME_S}/g" s.xml
- 合并执行(更高效):
sed -i -e "s/${S_PDBNAME_C}/${T_PDBNAME_C}/g" -e "s/${S_PDBNAME_S}/${T_PDBNAME_S}/g" s.xml
验证结果
执行替换命令后,查看s.xml内容:
cat s.xml
预期输出:
<global_db_name oa_var="s_dbSid">PEBSPAT</global_db_name> <db_name_lower oa_var="s_dbSidLower">pebspat</db_name_lower>
内容的提问来源于stack exchange,提问作者haseeb ur rahman syed
相关产品推荐
相关产品推荐

