Issue
I have many xml files which I want to merge into one file. I don't want to merge them from root but from one of the child. How to proceed with it using grep/sed/awk statements?
<root>
<version>AB</version>
<Data>
<Title>MyTitle</Title>
<SubTitle>Mysub</SubTitle>
</Data>
<file author="JXJX" name="MyFile1">
<desc>File1</desc>
<field>Random Field</field>
</file>
<root>
XML 2:
<root>
<version>AB</version>
<Data>
<Title>MyTitle 2</Title>
<SubTitle>Mysub 2</SubTitle>
</Data>
<file author="HIGH" name="MyFile2">
<desc>File2</desc>
<field>Random Field</field>
</file>
<root>
I want the following XML file:
<root>
<file author="JXJX" name="MyFile1">
<desc>File1</desc>
<field>Random Field</field>
</file>
<file author="HIGH" name="MyFile2">
<desc>File2</desc>
<field>Random Field</field>
</file>
</root>
Solution
For files as simple as your examples, you may get away with a short sed
command which prints the first line, all lines from <file
to </file>
, and the last line:
sed -n '1p;/<file/,/<\/file>/p;$p' XML1 XML2
Answered By - Armali Answer Checked By - Marie Seifert (WPSolving Admin)