This question already has an answer here:

For e. g., less has option --squeeze-blank-lines (or -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?

marked as duplicate by cuonglm, terdon Apr 6 '16 at 14:32

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • Depends, how were you thinking of using grep? – terdon Apr 6 '16 at 14:26
  • 1
    my go to command is grep -v ^$ filename – MelBurslan Apr 6 '16 at 14:27
  • @MelBurslan why not just grep . filename? Or, to also remove non-empty lines with whitespace: grep -E '\S' filename – terdon Apr 6 '16 at 14:34

Use awk!

echo -e "dada



" | awk NF

results in


Not the answer you're looking for? Browse other questions tagged or ask your own question.