DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(diff.info.gz) Line Formats

Info Catalog (diff.info.gz) Line Group Formats (diff.info.gz) If-then-else (diff.info.gz) Detailed If-then-else
 
 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-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'
      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 contents of the line, not counting its trailing
      newline (if any).  This format ignores whether the line is
      incomplete;  Incomplete Lines.
 
 `%L'
      stands for 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"'.   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
 
Info Catalog (diff.info.gz) Line Group Formats (diff.info.gz) If-then-else (diff.info.gz) Detailed If-then-else
automatically generated byinfo2html