[Chapter 25] 25.10 Squash Extra Blank Lines
Author: Jerry Peek, Tim O'Reilly & Mike Loukides
Date: 1998-08-04T21:43:21Z

#

| Chapter 25 Showing What's in a File |

## 25.10 Squash Extra Blank Lines

Reading output with lots of empty lines can be a waste of screen space. For instance, some System V versions of man (50.1) show all the blank lines between manual pages. To stop that, read your file or pipe it through cat -s. (Many versions of more (25.3) have a similar -s option.) The -s option replaces multiple blank lines with a single blank line. (If your cat doesn't have -s, see the sed alternative at the end.)

cat -s might not always seem to work. The problem is usually that the "empty" lines have SPACE, TAB, or CTRL-m characters on them. The fix is to let sed "erase" lines with those invisible characters on them:

>     % sed 's/^[[SPACE][TAB][CTRL-v][CTRL-m]]*$//' file | cat -s

In vi (31.6) and many terminal drivers (42.1), the CTRL-v character quotes the CTRL-m (RETURN) so that character doesn't end the current line.

If you don't have cat -s, then sed can do both jobs:

>     % sed -e 's/^[[SPACE][TAB][CTRL-v][CTRL-m]]*$//' -e '/./,/^$/!d' file

- JP

25.9 Adding and Deleting White Space |  | 25.11 crush: A cat that Skips all Blank Lines