About Us Documentation

Contact Site Map



Go to the previous, next chapter.

Making diff Output Prettier

diff provides several ways to adjust the appearance of its output. These adjustments can be applied to any output format.

  • Tabs: Preserving the alignment of tabstops.
  • Pagination: Page numbering and timestamping diff output.

Preserving Tabstop Alignment

The lines of text in some of the diff output formats are preceded by one or two characters that indicate whether the text is inserted, deleted, or changed. The addition of those characters can cause tabs to move to the next tabstop, throwing off the alignment of columns in the line. GNU diff provides two ways to make tab-aligned columns line up correctly.

The first way is to have diff convert all tabs into the correct number of spaces before outputting them; select this method with the -t or --expand-tabs option. diff assumes that tabstops are set every 8 columns. To use this form of output with patch, you must give patch the -l or --ignore-white-space option (see section Applying Patches with Changed White Space, for more information).

The other method for making tabs line up correctly is to add a tab character instead of a space after the indicator character at the beginning of the line. This ensures that all following tab characters are in the same position relative to tabstops that they were in the original files, so that the output is aligned correctly. Its disadvantage is that it can make long lines too long to fit on one line of the screen or the paper. It also does not work with the unified output format, which does not have a space character after the change type indicator character. Select this method with the -T or --initial-tab option.

Paginating diff Output

It can be convenient to have long output page-numbered and time-stamped. The -l and --paginate options do this by sending the diff output through the pr program. Here is what the page header might look like for diff -lc lao tzu:

Mar 11 13:37 1991  diff -lc lao tzu Page 1



Email addresses listed on this site may  NOT be used for unsolicited commercial email.

Ready-to-Run Software, Inc Privacy Statement

Portions (c)Copyright, 1996-2005 by Ready-to-Run Software, Inc
(All rights reserved.)
212 Cedar Cove
Lansing, NY 14882
Phone: 607 533 UNIX (8649)
Fax: 607 533 4002