使用sed进行多行删除

lyr*_*cat 5 sed

我正在尝试使用sed删除所有出现的

#ifdef _WIN32

#endif
Run Code Online (Sandbox Code Playgroud)

#ifdef和#endif之间存在的所有内容都是空行.我使用sed的经验有限,我已经阅读了关于多线功能的一些文档,但我似乎无法弄明白.任何帮助表示赞赏!

Ben*_*son 5

您可以尝试,sed -e '/^#ifdef _WIN32/,/^#endif/d'但它不会推广到更复杂的嵌套情况.


Jon*_*ler 4

对于这项工作,我建议使用专为该工作设计的工具 - 而不是sed.

这将处理所有_WIN32部分,只留下必要的部分。

另请参阅我的相关问题:是否有一个 C 预处理器可以根据已定义/未定义的值消除 #ifdef 块?