GNU Info

Info Node: (diff.info)Line Formats

(diff.info)Line Formats


Next: Detailed If-then-else Prev: Line Group Formats Up: If-then-else
Enter node , (file) or (file)node

Line Formats
------------

   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-column
change indicator to the left of the text.  The first column 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'
     formats lines just from the first file.

`--new-line-format=FORMAT'
     formats lines just from the second file.

`--unchanged-line-format=FORMAT'
     formats lines common to both files.

`--line-format=FORMAT'
     formats all lines; in effect, it sets all three above options
     simultaneously.

   In a line format, ordinary characters represent themselves;
conversion specifications start with `%' and have one of the following
forms.

`%l'
     stands for the the contents of the line, not counting its trailing
     newline (if any).  This format ignores whether the line is
     incomplete; Note: Incomplete Lines.

`%L'
     stands for the the contents of the line, including its trailing
     newline (if any).  If a line is incomplete, this format preserves
     its incompleteness.

`%%'
     stands for `%'.

`%c'C''
     where C is a single character, stands for C.  C may not be a
     backslash or an apostrophe.  For example, `%c':'' stands for a
     colon.

`%c'\O''
     where O is a string of 1, 2, or 3 octal digits, stands for the
     character with octal code O.  For example, `%c'\0'' stands for a
     null character.

`Fn'
     where F is a `printf' conversion specification, stands for the
     line number formatted with F.  For example, `%.5dn' prints the
     line number using the `printf' format `"%.5d"'.  Note: 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 `diff''s normal format.  You can tailor this command to get
fine control over `diff''s 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


automatically generated by info2www version 1.2.2.9