sed搜索html标签,只留下第一个和最后一个条目

时间:2013-10-02 16:14:14

标签: html bash sed

我使用sed来操作一个html文件,这样我就可以将它导入到wordpress中 现在我有一个统一标签的问题 e.g

`<Article> .... <ShortCut>... some text  <ShortCut> some more text ... </ShortCut>
<ShortCut> some more text ... </ShortCut></ShortCut> </Article>...`
应该是:

`<Article> .... <ShortCut>... some text  some more text ...  some more text ...  </ShortCut> 
</Article>...`

有没有办法让sed删除所有这些ShortCut标签,只留下标签文章之间的第一个和最后一个?

thx任何帮助!

更新:在输入文件中有多篇文章。因此,我只能合并每篇文章的快捷方式

1 个答案:

答案 0 :(得分:0)

使用awk

awk -F"</?ShortCut>" '{printf "%s <ShortCut>",$1; for (i=2;i<NF;i++) printf $i;print "</ShortCut> " $NF}' file
<Article> ....  <ShortCut>... some text   some more text ...  some more text ... </ShortCut>  </Article>...