Node:Line Formats, Next:Detailed If-then-else, Previous:Line Group Formats, Up:If-then-else
Line formats control how each line taken from an input file is output as part of a line group in if-then-else format.
For example, the following command outputs text with a one-character
change indicator to the left of the text. The first character of output
is - for deleted lines, | for added lines, and a space for
unchanged lines. The formats contain newline characters where newlines
are desired on output.
diff \ --old-line-format='-%l ' \ --new-line-format='|%l ' \ --unchanged-line-format=' %l ' \ old new
To specify a line format, use one of the following options. You should quote format, since it often contains shell metacharacters.
--old-line-format=format
--new-line-format=format
--unchanged-line-format=format
--line-format=format
In a line format, ordinary characters represent themselves;
conversion specifications start with % and have one of the
following forms.
%l
%L
%%
%.
%c'C'
%c':' stands for a colon.
%c'\O'
%c'\0' stands for a null character.
Fn
printf conversion specification,
stands for the line number formatted with F.
For example, %.5dn prints the line number using the
printf format "%.5d". See Line Group Formats, for
more about printf conversion specifications.
The default line format is %l followed by a newline character.
If the input contains tab characters and it is important that they line
up on output, you should ensure that %l or %L in a line
format is just after a tab stop (e.g. by preceding %l or
%L with a tab character), or you should use the -t or
--expand-tabs option.
Taken together, the line and line group formats let you specify many
different formats. For example, the following command uses a format
similar to normal diff format. You can tailor this command
to get fine control over diff output.
diff \ --old-line-format='< %l ' \ --new-line-format='> %l ' \ --old-group-format='%df%(f=l?:,%dl)d%dE %<' \ --new-group-format='%dea%dF%(F=L?:,%dL) %>' \ --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL) %<--- %>' \ --unchanged-group-format='' \ old new