Man Linux: Main Page and Category List

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 .