- publishing free software manuals
Comparing and Merging Files with GNU diff and patch
by David MacKenzie, Paul Eggert, and Richard Stallman
Paperback (6"x9"), 120 pages
ISBN 0954161750
RRP £12.95 ($19.95)

"Well packaged... the quality of information is excellent" --- Linux User and Developer Magazine (Issue 36, Feb 2004) Get a printed copy>>>

2.3.3.1 Showing Lines That Match Regular Expressions

To show in which sections differences occur for files that are not source code for C or similar languages, use the -F regexp or --show-function-line=regexp option. diff considers lines that match the grep-style regular expression regexp to be the beginning of a section of the file. Here are suggested regular expressions for some common languages:

‘^[[:alpha:]$_]’
C, C++, Prolog
‘^(’
Lisp
‘^@node’
Texinfo

This option does not automatically select an output format; in order to use it, you must select the context format (see section 2.3.1 Context Format) or unified format (see section 2.3.2 Unified Format). In other output formats it has no effect.

The -F and --show-function-line options find the nearest unchanged line that precedes each hunk of differences and matches the given regular expression. Then they add that line to the end of the line of asterisks in the context format, or to the ‘@@’ line in unified format. If no matching line exists, they leave the output for that hunk unchanged. If that line is more than 40 characters long, they output only the first 40 characters. You can specify more than one regular expression for such lines; diff tries to match each line against each regular expression, starting with the last one given. This means that you can use -p and -F together, if you wish.

ISBN 0954161750Comparing and Merging Files with GNU diff and patchSee the print edition