The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> expand - convert tabs to spaces

#### SYNOPSIS

> ``[UP] expand` [`-t` tablist][file `...`]```

#### DESCRIPTION

> The expand utility shall write files or the standard input to the standard output with <tab>s replaced with one or more <space>s needed to pad to the next tab stop. Any <backspace>s 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 IEEE Std 1003.1-2001, 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>s or commas, in ascending order. The tabs 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 IEEE Std 1003.1-2001, 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>s and <space>s, 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
>   [XSI] 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>s converted into the appropriate number of <space>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
>   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>s.

> See the Base Definitions volume of IEEE Std 1003.1-2001, 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 commas or <blank>s.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> tabs, unexpand

#### CHANGE HISTORY

> First released in Issue 4.

#### Issue 6

> This utility is marked as part of the User Portability Utilities option.

> The APPLICATION USAGE section is added.

> The obsolescent SYNOPSIS is removed.

> The LC_CTYPE environment variable description is updated to align with the IEEE P1003.2b draft standard.

> The normative text is reworded to avoid use of the term "must" for application requirements.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]