Provided by: manpages-posix_2013a-2_all bug

PROLOG

       This  manual  page  is part of the POSIX Programmer's Manual.  The Linux implementation of this interface
       may differ (consult the corresponding Linux manual page for details of Linux behavior), or the  interface
       may not be implemented on Linux.

NAME

       expand — convert tabs to spaces

SYNOPSIS

       expand [−t tablist] [file...]

DESCRIPTION

       The  expand  utility shall write files or the standard input to the standard output with <tab> characters
       replaced with one or more <space> characters needed  to  pad  to  the  next  tab  stop.  Any  <backspace>
       characters shall be copied to the output and cause the column position count for tab stop calculations to
       be decremented; the column position count shall not be decremented below zero.

OPTIONS

       The expand utility shall conform to the Base Definitions volume of POSIX.1‐2008,  Section  12.2,  Utility
       Syntax Guidelines.

       The following option shall be supported:

       −t tablist
                 Specify  the  tab  stops.  The  application  shall ensure that the argument tablist consists of
                 either a single positive decimal integer or a list of tabstops. If a single  number  is  given,
                 tabs shall be set that number of column positions apart instead of the default 8.

                 If  a list of tabstops is given, the application shall ensure that it consists of a list of two
                 or more positive decimal integers, separated by <blank> or  <comma>  characters,  in  ascending
                 order.  The  <tab>  characters shall be set at those specific column positions. Each tab stop N
                 shall be an integer value greater than zero, and the list is in strictly ascending order.  This
                 is  taken  to  mean that, from the start of a line of output, tabbing to position N shall cause
                 the next character output to be in the (N+1)th column position on that line.

                 In the event of expand having to process a <tab>  at  a  position  beyond  the  last  of  those
                 specified  in  a multiple tab-stop list, the <tab> shall be replaced by a single <space> in the
                 output.

OPERANDS

       The following operand shall be supported:

       file      The pathname of a text file to be used as input.

STDIN

       See the INPUT FILES section.

INPUT FILES

       Input files shall be text files.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of expand:

       LANG      Provide a default value for the internationalization variables that are unset or null. (See the
                 Base  Definitions  volume  of POSIX.1‐2008, Section 8.2, Internationalization Variables for the
                 precedence  of  internationalization  variables  used  to  determine  the  values   of   locale
                 categories.)

       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),
                 the processing of <tab> and <space> characters, and for  the  determination  of  the  width  in
                 column positions each character would occupy on an output device.

       LC_MESSAGES
                 Determine  the  locale  that  should  be  used  to affect the format and contents of diagnostic
                 messages 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 equivalent to the input files  with  <tab>  characters  converted  into  the
       appropriate number of <space> characters.

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    Successful completion

       >0    An error occurred.

CONSEQUENCES OF ERRORS

       The  expand  utility  shall  terminate  with  an error message and non-zero exit status upon encountering
       difficulties accessing one of the file operands.

       The following sections are informative.

APPLICATION USAGE

       None.

EXAMPLES

       None.

RATIONALE

       The expand utility is useful for preprocessing text files (before sorting, looking at  specific  columns,
       and so on) that contain <tab> characters.

       See the Base Definitions volume of POSIX.1‐2008, Section 3.103, Column Position.

       The  tablist option-argument consists of integers in ascending order. Utility Syntax Guideline 8 mandates
       that expand shall accept the integers (within the single argument)  separated  using  either  <comma>  or
       <blank> characters.

       Earlier versions of this standard allowed the following form in the SYNOPSIS:

           expand [−tabstop][−tab1,tab2,...,tabn][file ...]

       This form is no longer specified by POSIX.1‐2008 but may be present in some implementations.

FUTURE DIRECTIONS

       None.

SEE ALSO

       tabs, unexpand

       The  Base  Definitions  volume  of  POSIX.1‐2008,  Section 3.103, Column Position, Chapter 8, Environment
       Variables, Section 12.2, Utility Syntax Guidelines

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2013 Edition,
       Standard  for  Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers,  Inc
       and  The  Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) 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.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are most likely to have  been  introduced
       during   the   conversion  of  the  source  files  to  man  page  format.  To  report  such  errors,  see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .