Если существуют пары #ifdef _WIN32/#endif
, между которыми есть непустые строки, которые вы не хотите удалить, используйте следующее:
sed 'N;N;s/\n#ifdef _WIN32\n[[:space:]]*\n#endif\n/\n/;P;D'
Input
this is the first line
#ifdef _WIN32
// Don't delete this comment!
#endif
stuff here
more stuff here
#ifdef _WIN32
#endif
last line
Выход
$ sed 'N;N;s/\n#ifdef _WIN32\n[[:space:]]*\n#endif\n/\n/;P;D' ifdef.sed
this is the first line
#ifdef _WIN32
// Don't delete this comment!
#endif
stuff here
more stuff here
last line