regex – 删除xml文件中没有sort或unique的重复连续行

前端之家收集整理的这篇文章主要介绍了regex – 删除xml文件中没有sort或unique的重复连续行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个xml文件,我需要保持标签的顺序,但有一个名为media的标签,它有连续顺序的重复行.我想删除其中一个重复的媒体标签,但希望保留所有的父标签 – (也是连续的和重复的).我想知道是否有一个awk解决方案只有在模式匹配时才能删除.例如:

<story>
   <article>
      <media>One line</media>
      <media>One line</media>    <-- Same line as above,want to delete this
      <media>Another Line</media>
      <media>Another Line</media>  <-- Another duplicate,want to delete this
   </article>
</story>
<story>
   <article>
     ........ and so on

我想保留连续的故事和文章标签,只删除媒体标签的重复项.我已经尝试了许多awk脚本,但没有任何东西似乎没有排序文件和破坏xml的顺序.任何帮助非常感谢.

解决方法

awk脚本可以帮助你

awk '!(f == $0){print} {f=$0}' input

测试

$cat input
<story>
   <article>
      <media>One line</media>
      <media>One line</media>
      <media>Another Line</media>
      <media>Another Line</media>
this
   </article>
</story>
<story>
   <article>

$awk '!(f == $0){print} {f=$0}' input
<story>
   <article>
      <media>One line</media>
      <media>Another Line</media>
this
   </article>
</story>
<story>
   <article>

要么

$awk 'f!=$0&&f=$0' input

感谢Jidder

猜你在找的XML相关文章