Bash脚本在特定元素之后将文件插入xml文件

时间:2014-03-28 15:03:20

标签: xml bash sed awk

我有以下格式的XML文件:

 <Country name=England>
  <City name_city=London>
  some thing here
  </City>
  <City name_city=Manchester>
  some thing here
  </City>
  <City name_city=Liverpool>
  some thing here
  </City>
  Many other elements like these ones.
</Country>

还有另一个这样的文件:

  <City name_city=Hull>
  some thing here
  </City>

使用bash脚本,如何将后一个文件的内容插入元素后面的第一个

  <City name_city=Manchester>
  some thing here
  </City>

我期待使用SED或AWK解决问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

永远不建议使用xmlsed解析awk。有三个更好的工具。如果它是一个学习练习,那么你可以做以下,但就像我说的,使用适当的xml解析器。

awk '
/City name_city=Manchester>/ { flag = 1 } 
flag && /<\/City>/ { 
    print $0; 
    while((getline line < "file2") > 0) { 
        print line; 
    }
    flag=0
    next
}1' file1