我有一堆 XML 文件,每个文件的格式...
<?xml version="1.0" encoding="UTF-8"?>
<A>
<R>
<B></B>
<Q></Q>
<U></U>
</R>
...
</A>
我需要在每个中搜索字符串,并返回整个元素“R”。问题是字符串中有新行,所以我不能使用 grep -B n -A n 因为每个搜索结果之前和之后的行数可能不同
例如,给定以下...
<?xml version="1.0" encoding="UTF-8"?>
<A>
<R>
<B>abc</B>
<Q>0123</Q>
<U>xyz</U>
</R>
<R>
<B>
qwe
rty
yui
</B>
<Q>0123</Q>
<U>
zxc
abc
</U>
</R>
<R>
<B>lkj</B>
<Q>
lkjhgfdsa
wer
</Q>
<U>
poixyz
zaq
</U>
</R>
</A>
如果我 grep 为“xyz”,那么我需要得到......
<R>
<B>abc</B>
<Q>0123</Q>
<U>xyz</U>
</R>
<R>
<B>lkj</B>
<Q>
lkjhgfdsa
wer
</Q>
<U>
poixyz
zaq
</U>
</R>
我不反对使用 perl、egrep 等其他工具来实现这一点。任何和所有的帮助将不胜感激。