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

Bash脚本在特定元素后将文件插入xml文件,xml,bash,sed,awk,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>

我有一个以下格式的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来解决这个问题


谢谢你的帮助

不建议使用
sed
awk
解析
xml
。有三种更好的工具。如果这是一个学习练习,那么您可以执行以下操作,但正如我所说的,使用适当的xml解析器

awk '
/City name_city=Manchester>/ { flag = 1 } 
flag && /<\/City>/ { 
    print $0; 
    while((getline line < "file2") > 0) { 
        print line; 
    }
    flag=0
    next
}1' file1
awk'
/城市名称\u City=Manchester>/{flag=1}
标志&/{
打印$0;
而((getline<“file2”)>0{
打印线;
}
标志=0
下一个
}1'文件1

使用Sed或Awk修改XML不是一个好主意。Sed和Awk用于面向行的数据。XML不是面向行的数据。您必须限制XML,这迟早会破坏您的应用程序。您应该考虑基于XSLT的解决方案。尝试