expand - convert tabs to spaces
expand [-t tablist][file ...] expand [-tabstop][-tab1,tab2,...,tabn][file...]
The expand utility writes 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 will be copied to the output and cause the column position count for tab stop calculations to be decremented; the column position count will not be decremented below zero.
The expand utility supports the XBD specification, Utility Syntax Guidelines ; the obsolescent version does not.
The following options are supported:
- -t tablist
- Specify the tab stops. The argument tablist must consist of a single positive decimal integer or multiple positive decimal integers, separated by blank characters or commas, in ascending order. If a single number is given, tabs will be set tablist column positions apart instead of the default 8. If multiple numbers are given, the tabs will be set at those specific column positions. Each tab-stop position N must be an integer value greater than zero, and the list must be in strictly ascending order. This is taken to mean that, from the start of a line of output, tabbing to position N causes 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 character at a position beyond the last of those specified in a multiple tab-stop list, the tab character is replaced by a single space character in the output.
In the obsolescent version, the single number is specified as tabstop with a leading minus; multiple tab stops are specified after a leading minus as tab1, tab2 and so on.
The following operand is supported:
- The pathname of a text file to be used as input.
See the INPUT FILES section.
Input files must be text files.
The following environment variables affect the execution of expand:
- Provide a default value for the internationalisation variables that are unset or null. If LANG is unset or null, the corresponding value from the implementation-dependent default locale will be used. If any of the internationalisation variables contains an invalid setting, the utility will behave as if none of the variables had been defined.
- If set to a non-empty string value, override the values of all the other internationalisation variables.
- Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single- 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 a constant-width font output device.
- Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard error.
- Determine the location of message catalogues for the processing of LC_MESSAGES .
The standard output is equivalent to the input files with tab characters converted into the appropriate number of space characters.
Used only for diagnostic messages.
The following exit values are returned:
- Successful completion
- An error occurred.
The expand utility will terminate with an error message and non-zero exit status upon encountering difficulties accessing one of the file operands.