use*_*714 4 regex xml bash awk sed
我有一个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
Run Code Online (Sandbox Code Playgroud)
我想保留连续的故事和文章标签,只删除媒体标签的重复项.我已经尝试了许多awk脚本,但没有任何东西似乎没有排序文件和破坏xml的顺序.任何帮助非常感谢.
awk脚本可以帮助你
awk '!(f == $0){print} {f=$0}' input
Run Code Online (Sandbox Code Playgroud)
测试
$ 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>
Run Code Online (Sandbox Code Playgroud)
要么
$ awk 'f!=$0&&f=$0' input
Run Code Online (Sandbox Code Playgroud)
感谢Jidder
| 归档时间: |
|
| 查看次数: |
1289 次 |
| 最近记录: |