gpt4 book ai didi

regex - 删除 xml 文件中没有排序或唯一的重复连续行

转载 作者:数据小太阳 更新时间:2023-10-29 02:01:04 25 4
gpt4 key购买 nike

我有一个 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

关于regex - 删除 xml 文件中没有排序或唯一的重复连续行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27812086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com