# expand

## 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‐2017, _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‐2017, _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‐2017, _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.
    


* * *