man/cat1p/fold.1p.txt

fold(P) fold(P)
 
 
 
 
 
NAME
       fold - filter for folding lines
 
SYNOPSIS
       fold [-bs][-w width][file...]
 
DESCRIPTION
       The fold utility is a filter that shall fold lines from
       its input files, breaking the lines to have a maximum of
       width column positions (or bytes, if the -b option is
       specified). Lines shall be broken by the insertion of a
       <newline> such that each output line (referred to later
       in this section as a segment) is the maximum width pos-
       sible that does not exceed the specified number of col-
       umn positions (or bytes). A line shall not be broken in
       the middle of a character. The behavior is undefined if
       width is less than the number of columns any single
       character in the input would occupy.
 
       If the <carriage-return>s, <backspace>s, or <tab>s are
       encountered in the input, and the -b option is not spec-
       ified, they shall be treated specially:
 
       <backspace>
              The current count of line width shall be decre-
              mented by one, although the count never shall
              become negative. The fold utility shall not
              insert a <newline> immediately before or after
              any <backspace>.
 
       <carriage-return>
 
              The current count of line width shall be set to
              zero. The fold utility shall not insert a <new-
              line> immediately before or after any <carriage-
              return>.
 
       <tab> Each <tab> encountered shall advance the column
              position pointer to the next tab stop. Tab stops
              shall be at each column position n such that n
              modulo 8 equals 1.
 
 
OPTIONS
       The fold utility shall conform to the Base Definitions
       volume of IEEE Std 1003.1-2001, Section 12.2, Utility
       Syntax Guidelines.
 
       The following options shall be supported:
 
       -b Count width in bytes rather than column posi-
              tions.
 
       -s If a segment of a line contains a <blank> within
              the first width column positions (or bytes),
              break the line after the last such <blank> meet-
              ing the width constraints. If there is no <blank>
              meeting the requirements, the -s option shall
              have no effect for that output segment of the
              input line.
 
       -w width
              Specify the maximum line length, in column posi-
              tions (or bytes if -b is specified). The results
              are unspecified if width is not a positive deci-
              mal number. The default value shall be 80.
 
 
OPERANDS
       The following operand shall be supported:
 
       file A pathname of a text file to be folded. If no
              file operands are specified, the standard input
              shall be used.
 
 
STDIN
       The standard input shall be used only if no file oper-
       ands are specified. See the INPUT FILES section.
 
INPUT FILES
       If the -b option is specified, the input files shall be
       text files except that the lines are not limited to
       {LINE_MAX} bytes in length. If the -b option is not
       specified, the input files shall be text files.
 
ENVIRONMENT VARIABLES
       The following environment variables shall affect the
       execution of fold:
 
       LANG Provide a default value for the internationaliza-
              tion variables that are unset or null. (See the
              Base Definitions volume of IEEE Std 1003.1-2001,
              Section 8.2, Internationalization Variables for
              the precedence of internationalization variables
              used to determine the values of locale cate-
              gories.)
 
       LC_ALL If set to a non-empty string value, override the
              values of all the other internationalization
              variables.
 
       LC_CTYPE
              Determine the locale for the interpretation of
              sequences of bytes of text data as characters
              (for example, single-byte as opposed to multi-
              byte characters in arguments and input files),
              and for the determination of the width in column
              positions each character would occupy on a con-
              stant-width font output device.
 
       LC_MESSAGES
              Determine the locale that should be used to
              affect the format and contents of diagnostic mes-
              sages written to standard error.
 
       NLSPATH
              Determine the location of message catalogs for
              the processing of LC_MESSAGES .
 
 
ASYNCHRONOUS EVENTS
       Default.
 
STDOUT
       The standard output shall be a file containing a
       sequence of characters whose order shall be preserved
       from the input files, possibly with inserted <newline>s.
 
STDERR
       The standard error shall be used only for diagnostic
       messages.
 
OUTPUT FILES
       None.
 
EXTENDED DESCRIPTION
       None.
 
EXIT STATUS
       The following exit values shall be returned:
 
        0 All input files were processed successfully.
 
       >0 An error occurred.
 
 
CONSEQUENCES OF ERRORS
       Default.
 
       The following sections are informative.
 
APPLICATION USAGE
       The cut and fold utilities can be used to create text
       files out of files with arbitrary line lengths. The cut
       utility should be used when the number of lines (or
       records) needs to remain constant. The fold utility
       should be used when the contents of long lines need to
       be kept contiguous.
 
       The fold utility is frequently used to send text files
       to printers that truncate, rather than fold, lines wider
       than the printer is able to print (usually 80 or 132
       column positions).
 
EXAMPLES
       An example invocation that submits a file of possibly
       long lines to the printer (under the assumption that the
       user knows the line width of the printer to be assigned
       by lp):
 
 
              fold -w 132 bigfile | lp
 
RATIONALE
       Although terminal input in canonical processing mode
       requires the erase character (frequently set to
       <backspace>) to erase the previous character (not byte
       or column position), terminal output is not buffered and
       is extremely difficult, if not impossible, to parse cor-
       rectly; the interpretation depends entirely on the phys-
       ical device that actually displays/prints/stores the
       output. In all known internationalized implementations,
       the utilities producing output for mixed column-width
       output assume that a <backspace> backs up one column
       position and outputs enough <backspace>s to return to
       the start of the character when <backspace> is used to
       provide local line motions to support underlining and
       emboldening operations. Since fold without the -b option
       is dealing with these same constraints, <backspace> is
       always treated as backing up one column position rather
       than backing up one character.
 
       Historical versions of the fold utility assumed 1 byte
       was one character and occupied one column position when
       written out. This is no longer always true. Since the
       most common usage of fold is believed to be folding long
       lines for output to limited-length output devices, this
       capability was preserved as the default case. The -b
       option was added so that applications could fold files
       with arbitrary length lines into text files that could
       then be processed by the standard utilities. Note that
       although the width for the -b option is in bytes, a line
       is never split in the middle of a character. (It is
       unspecified what happens if a width is specified that is
       too small to hold a single character found in the input
       followed by a <newline>.)
 
       The tab stops are hardcoded to be every eighth column to
       meet historical practice. No new method of specifying
       other tab stops was invented.
 
FUTURE DIRECTIONS
       None.
 
SEE ALSO
       cut
 
COPYRIGHT
       Portions of this text are reprinted and reproduced in
       electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard for Information Technology -- Portable Operat-
       ing System Interface (POSIX), The Open Group Base Speci-
       fications Issue 6, Copyright (C) 2001-2003 by the Insti-
       tute of Electrical and Electronics Engineers, Inc and
       The Open Group. In the event of any discrepancy between
       this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be
       obtained online at http://www.open-
       group.org/unix/online.html .
 
 
 
POSIX 2003 fold(P)