使用sed在xml中搜索值

使用sed在xml中搜索值,sed,xml-parsing,ksh,Sed,Xml Parsing,Ksh,我有一个下面的xml文件 <documents> <document><title>some title1</title><abstract>Some abstract1</abstract></document> <document><title>some title2</title><abstract>Some abstract2</abstract>

我有一个下面的xml文件

<documents>
<document><title>some title1</title><abstract>Some abstract1</abstract></document>
<document><title>some title2</title><abstract>Some abstract2</abstract></document>
<document><title>some title3</title><abstract>Some abstract3</abstract></document>
<document><title>some title4</title><abstract>Some abstract4</abstract></document>
</documents>

一些标题一些摘要
一些标题2一些摘要2
一些标题3一些摘要3
一些标题一些摘要
我正试图编写一个ksh脚本,根据title=title4获取抽象值

在我的计算机中不允许使用xmllint、xstartlet(访问问题)

我试过了

sed -n '/abstract/{s/.*<abstract>//;s/<\/abstract.*//;p;}' connections.xml

sed-n'/abstract/{s/*/;s/基于您给出的示例:

sed -n '/title>.*title4<\/title>/{s#.*<abstract>##;s#</abstract>.*##;p}' file
grep方法:

grep -Poz '<title>.*?title4</title><abstract>\K[^<>]+(?=</abstract>)' connections.xml && echo ""

grep:unlawk option--P grep:unlawk option--o grep:unlawk option--z用法:grep-hblcnsviw pattern file…@useranon,您的环境非常差:没有grep,没有xmlstarlet。我向您表示最深切的哀悼…经过一些编辑,下面的代码可以使用sed-n'/title>*title4/{s###########s...##P}documents.xml
grep -Poz '<title>.*?title4</title><abstract>\K[^<>]+(?=</abstract>)' connections.xml && echo ""
Some abstract4