unexpand(1p) - phpMan

UNEXPAND(1P)               POSIX Programmer's Manual              UNEXPAND(1P)

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
       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 max-
       imum 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 immedi-
              ately preceding a tab stop to the maximum number of <tab>s  fol-
              lowed  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  posi-
              tions.
       The  application shall ensure that each tab-stop position N is an inte-
       ger value greater than zero, and the list shall be in strictly  ascend-
       ing order. This is taken to mean that, from the start of a line of out-
       put, 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 posi-
       tions 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 unex-
       pand:
       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 Vari-
              ables 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 spa-
       ces  when neither -a nor -t is specified. Users who always want to con-
       vert 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 out-
       side 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 commu-
       nity, so -t was restored in conjunction with the list of  valid  exten-
       sion  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(1P)