2つのXMLファイルがあります。
1.xml
<abc>
....
....
</abc>
<xyz attrib1='1234'>
...
...
</xyz>
2.xml
<abc>
xxx
xxx
</abc>
<xyz attrib2='4321'>
xxx
xxxx
</xyz>
最終ファイルを提供するには、シェルスクリプトを使用して1.xmlファイルの「xyz」タグの内容を2.xmlの内容に置き換える必要があります。たとえば、次のようになります。
<abc>
....
....
</abc>
<xyz attrib2='4321'>
xxx
xxxx
</xyz>
ベストアンサー1
そしてsed
:
sed -n '/<xyz[ >]/,/<\/xyz>/p' 2.xml | \
sed '/<xyz[ >]/,/<\/xyz>/ { /<\/xyz>/! d; r /dev/stdin
D; }' 1.xml >output.xml
その後には改行文字が必要です/dev/stdin
。
sed
もう一つのきちんとしたが、あまり効率的な方法は次のとおりです。
{
sed '/<xyz[ >]/,$d' 1.xml
sed -n '/<xyz[ >]/,/<\/xyz>/p' 2.xml
sed '1,/<\/xyz>/d' 1.xml
} >output.xml