For e. g.,
less has option
-s in short) and it squeezes multiple blank lines into single blank line, buuut,
less wouldn't do this being used as filter (i. e., having its output sent not to a tty).
Similar option can be found in
cat too, it's also called
-s usually, and it also makes single blank line instead of several.
What about removing empty/blank lines all together? One approach I can think of is using
grep, but may be I've overlooked something more simple?