【发布时间】:2015-03-02 18:12:53
【问题描述】:
我有一个重复的文本块,需要在一个大型 xml 文件中删除。我想保留第一个块并在同一个 xml 标记中删除第二个块。例如:
<!--#if-->
-- several lines of text
<!--#else-->
-- several lines of the same text
<!--#endif-->
我想删除 else 和 endif 之间的第二个块,并保留 if 和 else 标签之间的 keep 块。非常感谢任何帮助 - 脚本最终会删除整个文件。
sed -i '/^<!--#else-->/ {p; :a; N; /^\<\!--\#endif--\>/!ba; s/*.\n//}; d' test.xml
【问题讨论】:
-
Obligatory link。使用 XML 解析库。
-
预期输出是多少?举个更清楚的例子。
-
预期输出是输出块外的所有内容以及#if 和#else 之间的文本 - 即我只想删除#else 和#endif 之间的重复文本