shell脚本:在xml文件中寻找标签中的值

xml文件如下:

》》》》配置文件为config.xml,其/home/huawei/mdn2000/es/conf/config.xml

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

比如我们要取出heading标签中的内容,则可以使用如下shell:

conf_file="/home/huawei/mdn2000/es/conf/config.xml"
service_type=`grep DeviceServiceType $conf_file | awk -F ">" '{print $2}' | awk -F "<" '{print $1}'`

Shell脚本更新XML文件并插入文时,可能会出现乱码的问题。这是因为Shell脚本默认使用的是ASCII编码,而XML文件包含的是Unicode编码的文字符。 要解决这个问题,可以使用iconv命令将Shell脚本的ASCII编码转换为XML文件的Unicode编码。具体的做法如下: 1. 打开Shell脚本,查看脚本所使用的编码格式。可以使用file命令查看,例如: ``` file script.sh ``` 2. 打开XML文件,查看文件的编码格式。可以使用file命令查看,例如: ``` file file.xml ``` 3. 如果Shell脚本XML文件的编码格式不一致,可以使用iconv命令进行转换。例如,如果Shell脚本使用的是UTF-8编码,而XML文件使用的是GBK编码,可以使用如下命令进行转换: ``` iconv -f UTF-8 -t GBK script.sh > script_new.sh ``` 其,-f参数指定源编码格式,-t参数指定目标编码格式,script_new.sh为转换后的新脚本文件名。 4. 在转换后的Shell脚本,使用sed命令更新XML文件。例如,要在XML文件插入文字符"测试",可以使用如下命令: ``` sed -i 's|</root>| <name>测试</name>\n</root>|g' file.xml ``` 其,-i参数表示直接修改原文件,s命令用于替换文本,|用于分隔命令的不同部分。 5. 最后,可以使用iconv命令将XML文件恢复为原来的编码格式。例如,如果XML文件原来使用的是GBK编码,可以使用如下命令进行转换: ``` iconv -f GBK -t UTF-8 file.xml > file_new.xml ``` 其,-f参数指定源编码格式,-t参数指定目标编码格式,file_new.xml为转换后的新XML文件名。 通过以上步骤,可以在Shell脚本更新XML文件并插入文字符,同时避免出现乱码问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值