13

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?

3
  • 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
24

Use awk!

echo -e "dada

ada

bada

" | awk NF

results in

dada
ada
bada
1

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