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>  characters  at the beginning of each line
       into the maximum number of <tab> characters  followed  by  the  minimum
       number  of  <space> characters needed to fill the same column positions
       originally filled by the translated  <blank>  characters.  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
       POSIX.1-2008, Section 12.2, Utility Syntax Guidelines.
       The following options shall be supported:
       -a        In  addition  to translating <blank> characters at the begin-
                 ning of each line, translate all sequences  of  two  or  more
                 <blank>  characters  immediately  preceding a tab stop to the
                 maximum number of <tab> characters followed  by  the  minimum
                 number  of  <space> characters needed to fill the same column
                 positions originally filled by the translated <blank> charac-
                 ters.
       -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>  or  <comma>  characters,  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> characters.
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  vari-
                 ables  that are unset or null. (See the Base Definitions vol-
                 ume of POSIX.1-2008, 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> and <space>  characters,  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
       <space>  characters  when  neither  -a  nor  -t is specified. Users who
       always want to convert all <space> characters  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> charac-
       ters 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 FOR-
       TRAN 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
       The Base Definitions volume of  POSIX.1-2008,  Chapter  8,  Environment
       Variables, Section 12.2, Utility Syntax Guidelines
COPYRIGHT
       Portions  of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
       --  Portable  Operating  System  Interface (POSIX), The Open Group Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electri-
       cal  and  Electronics  Engineers,  Inc  and  The  Open Group.  (This is
       POSIX.1-2008 with the 2013 Technical Corrigendum  1  applied.)  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.unix.org/online.html .
       Any typographical or formatting errors that appear  in  this  page  are
       most likely to have been introduced during the conversion of the source
       files to man page format. To report such errors,  see  https://www.ker-
       nel.org/doc/man-pages/reporting_bugs.html .
IEEE/The Open Group                  2013                         UNEXPAND(1P)