bash脚本用于将文本从两个文件中替换为一个

时间:2014-11-19 11:41:09

标签: xml bash

我有两个文件xml; en.xml和it.xml

在默认文件语言en.xml中我有这个结构

<string key="City is not set">
    <tr lang="en"> City is not set </tr>
我在文件It.xml中的

<string key="Citt&agrave; non &egrave; impostato">
    <tr lang="it">  </tr>

通过这种方式,我可以从it.xml中提取数据并输入到en.xml?

来自en.xml的

我需要获取字符串键

<string key="City is not set">

在第二个文件中我需要更改it.xml:

<string key="Citt&agrave; non &egrave; impostato">

in to:

<tr lang="it"> Citt&agrave; non &egrave; impostato </tr>

我的目标是获得最终结果:

<string key="City is not set">
    <tr lang="it"> Citt&agrave; non &egrave; impostato </tr>

我希望很清楚。

1 个答案:

答案 0 :(得分:0)

我用它来解析我的xml:

get_data () {
local tag=$1
local xml=$2

# Find tag in the xml, convert tabs to spaces, remove leading spaces, remove the tag.
grep $tag $xml | \
    tr '\011' '\040' | \
    sed -e 's/^[ ]*//' \
        -e 's/^<.*>\([^<].*\)<.*>$/\1/'
}
get_data \<tag_name\> filename.xml | tee output.txt
cat output.txt

然后添加一堆与输入相关的额外if else命令,一些提示和内容,并且你已经拥有了一个可用的xml解析器。

我使用curl命令来解析来自报纸和我个人最喜欢的rssmaker的xml提要。

此外,这里是the source

玩得开心!