使用bash在标签之间附加状态

时间:2014-10-28 07:57:34

标签: python bash xpath sed grep

我使用grep命令提取file.xml中的<cite> </cite>之间的所有内容:

grep -Po "(?<=<cite>).*?(?=</cite>)" /tmp/file.xml

结果是这样的:

<strong>site.com</strong>/<strong>blahblah</strong>/foo  #and may be with more tags named strong
<strong>site2.com</strong>/req/?<strong>blahblah2</strong>=foo

现在我希望得到这样的结果:

site.com/blahblah/foo
site2.com/req/?blahblah2=foo

我想删除添加<strong></strong>并附加其他人...

如果有办法在 python 中使用xpath,这也是受欢迎的......

3 个答案:

答案 0 :(得分:2)

您可以将grep发送到此sed以删除所有<strong></strong>代码:

sed -r 's#</?strong>##g'

答案 1 :(得分:2)

使用sed:

 grep -Po "(?<=<cite>).*?(?=</cite>)" /tmp/file.txt | sed 's:<[^>]*>::g'

将删除<...>

之间的所有内容

答案 2 :(得分:2)

尝试:

echo "<strong>site.com</strong>/<strong>blahblah</strong>/foo" | sed -e 's/<strong>//g' -e 's/<\/strong>//g'

输出

site.com/blahblah/foo