加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:22:12 所属栏目:百科 来源:网络整理
导读:我有一个xml文件,我需要保持标签的顺序,但有一个名为media的标签,它有连续顺序的重复行.我想删除其中一个重复的媒体标签,但希望保留所有的父标签 – (也是连续的和重复的).我想知道是否有一个awk解决方案只有在模式匹配时才能删除.例如: story article medi
我有一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读