Provided by: manpages-posix_2.16-1_all bug

NAME

       unexpand - convert spaces to tabs

SYNOPSIS

       unexpand [ -a| -t tablist][file...]

DESCRIPTION

       The  unexpand  utility  shall copy files or standard input to standard output, converting <blank>s at the
       beginning of each line into the maximum number of <tab>s followed  by  the  minimum  number  of  <space>s
       needed  to  fill  the  same  column  positions  originally filled by the translated <blank>s. By default,
       tabstops shall be set at every eighth column position.  Each <backspace> shall be copied to  the  output,
       and  shall  cause the column position count for tab calculations to be decremented; the count shall never
       be decremented to a value less than one.

OPTIONS

       The unexpand 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:

       -a     In  addition to translating <blank>s at the beginning of each line, translate all sequences of two
              or more <blank>s immediately preceding a tab stop to the maximum number of <tab>s followed by  the
              minimum  number  of  <space>s  needed  to  fill the same column positions originally filled by the
              translated <blank>s.

       -t  tablist
              Specify the tab stops. The application shall ensure that the tablist option-argument is  a  single
              argument  consisting  of  a single positive decimal integer or multiple positive decimal integers,
              separated by <blank>s or commas, in ascending order.  If a single number is given, tabs  shall  be
              set  tablist  column  positions apart instead of the default 8. If multiple numbers are given, the
              tabs shall be set at those specific column positions.

       The application shall ensure that each tab-stop position N is an integer value greater than zero, and the
       list shall be 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. When the -t option is not specified, the default shall be the equivalent of specifying -t 8
       (except for the interaction with -a, described below).

       No  <space>-to-  <tab>  conversions  shall  occur  for  characters  at positions beyond the last of those
       specified in a multiple tab-stop list.

       When -t is specified, the presence or absence of the -a option shall be ignored; conversion shall not  be
       limited to the processing of leading <blank>s.

OPERANDS

       The following operand shall be supported:

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

STDIN

       See the INPUT FILES section.

INPUT FILES

       The input files shall be text files.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of unexpand:

       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
              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  the  specified  <space>-to-  <tab>
       conversions.

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

       Default.

       The following sections are informative.

APPLICATION USAGE

       One  non-intuitive  aspect  of  unexpand  is  its restriction to leading spaces when neither -a nor -t is
       specified. Users who always want to convert all spaces in a file can easily alias unexpand to use the  -a
       or -t 8 option.

EXAMPLES

       None.

RATIONALE

       On several occasions, consideration was given to adding a -t option to the unexpand utility to complement
       the -t in expand (see expand ). The historical intent of unexpand was to translate multiple <blank>s into
       tab  stops,  where  tab  stops  were  a multiple of eight column positions on most UNIX systems. An early
       proposal omitted -t because it seemed outside the scope of the User Portability Utilities option; it  was
       not  described  in any of the base documents.  However, hard-coding tab stops every eight columns was not
       suitable for the international community and broke historical precedents for some vendors in the  FORTRAN
       community,  so  -t  was restored in conjunction with the list of valid extension categories considered by
       the standard developers. Thus, unexpand is now the logical converse of expand.

FUTURE DIRECTIONS

       None.

SEE ALSO

       expand , tabs

COPYRIGHT

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition,
       Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open  Group  Base
       Specifications Issue 6, Copyright (C) 2001-2003 by the Institute 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.opengroup.org/unix/online.html .

IEEE/The Open Group                                   2003                                           UNEXPAND(P)