Bash脚本在特定元素后将文件插入xml文件
我有一个以下格式的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>
<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的解决方案。尝试