我在一行上有以下数据:
<a href="#page-metadata-start" class="assistive">Go to start of metadata</a>
<div id="page-metadata-end" class="assistive"></div>
<fieldset class="hidden parameters">
<input type="hidden" title="browsePageTreeMode" value="view">
</fieldset>
<div class="wiki-content">
<p>(openissues)81(/openissues)</p><p>(assignstoday)0(/assignstoday)</p><p>(assignsweek)2(/assignsweek)</p><p>(replyissues)6(/replyissues)</p><p>(wrapissues)26(/wrapissues)</p>
</div>
我想获取“openissues”的值,例如,但我无法弄清楚要正确检索它。我尝试的其中一件事是以下命令:
sed -n '/(assignstoday)/,/(\/assignstoday)/p' ~/test.txt
任何帮助?
答案 0 :(得分:3)
sed 's/.*(openissues)\(.*\)(\/openissues).*/\1/' test.txt
快速破解可能符合您编辑的要求:
sed -n '/openissues/p' test.txt | sed 's/.*(openissues)\(.*\)(\/openissues).*/\1/'
但是在解析HTML时,正则表达式真的不是一种方法。
答案 1 :(得分:1)
我试试
VALUE=openissues
sed 's@.*('"$VALUE"')\([^(]\+\).*@\1@'
即,使用该内容替换除搜索内容之外的所有内容。
编辑:现在我看到尼尔的回答,实际上是一样的,接受他的回答。我留下我的答案来定制你想要提取的值。