小编use*_*052的帖子

使用sed删除正则表达式模式之间的多行文本块

我有一个重复的文本块,我需要在一个大的 xml 文件中删除。我想保留第一个块并在同一个 xml 标记中删除第二个块。例如:

<!--#if--> 
 -- several lines of text
<!--#else-->
-- several lines of the same text
<!--#endif-->
Run Code Online (Sandbox Code Playgroud)

我想删除 else 和 endif 之间的第二个块,并保留 if 和 else 标记之间的块。非常感谢任何帮助 - 脚本最终会删除整个文件。

sed -i '/^<!--#else-->/ {p; :a; N; /^\<\!--\#endif--\>/!ba; s/*.\n//}; d' test.xml
Run Code Online (Sandbox Code Playgroud)

regex bash awk sed

5
推荐指数
1
解决办法
2817
查看次数

标签 统计

awk ×1

bash ×1

regex ×1

sed ×1