I have multiple blocks of the below pattern
JavaScript
x
<APPLIANCE>
<ID>12233</ID>
<UUID>xxxx-xxxx-xxxx-xxxx-xxxxxxx</UUID>
<NAME>xxxxxxx</NAME>
<STATUS>Offline</STATUS>
</APPLIANCE>
<APPLIANCE>
<ID>12234</ID>
<UUID>xxxx-xxxx-xxxx-xxxx-xxxxxxx</UUID>
<NAME>yyyyy</NAME>
<STATUS>Offline</STATUS>
</APPLIANCE>
I want to extract a block with Particular ID and Particular Name. The output should display
For example :-
JavaScript
<ID>12234</ID>
<NAME>yyyyy</NAME>
I wanted to do using grep, sed, awk
Thanks.
Advertisement
Answer
This sed should work for you:
JavaScript
sed -n '/<ID>12234/,/<NAME>/{//p}' file
But you’d better use an xml parser as xmllint or xmlstarlet to parse valid xml files.