cut(1)                                                                  cut(1)


NAME
     cut - cut out selected fields of each line of a file

SYNOPSIS
     cut -b list [-n] [file . . .]
     cut -c list [file ...]
     cut -f list [-d char] [-s] [file . . .]

DESCRIPTION
     Use cut to cut out columns from a table or fields from each line of a
     file; in data base parlance, it implements the projection of a relation.
     The fields as specified by list can be fixed length, that is, character
     positions as on a punched card (-c option) or the length can vary from
     line to line and be marked with a field delimiter character like tab (-f
     option).  cut can be used as a filter; if no files are given, the
     standard input is used.  A file name of ``-'' explicitly refers to
     standard input.

     cut processes supplementary code set characters, and recognizes
     supplementary code set characters in the char given to the -d option (see
     below) according to the locale specified in the LC_CTYPE environment
     variable [see LANG on environ(5)].  For special treatment of multibyte
     characters, see the -clist option below.

     The meanings of the options are:

     list     A comma-separated list or blank-separated list of positive
              numbers and ranges.  Ranges have three forms.  The first is two
              positive integers separated by a hyphen (low-high), which
              represents all fields from low to high.  The second is a
              positive number preceded by a hyphen (-high), which represents
              all fields from field 1 to high.  The last is a positive number
              followed by a hyphen (low-), which represents all fields from
              low to the last field, inclusive.  Elements in the list can be
              repeated, can overlap, and can appear in any order.

     -b list  Cut based on a list of bytes.  Each selected byte will be output
              unless the -n option is also specified.  Bytes specified need
              not be present in the input.

     -c list  Cut based on a list of characters.  Each selected character will
              be output.  Characters specified need not be present in the
              input.

     -d       The character following -d is the field delimiter (-f option
              only).  Default is tab.  Space or other characters with special
              meaning to the shell must be quoted.  char may be a
              supplementary code set character.

     -flist   The list following -f is a list of fields assumed to be
              separated in the file by a delimiter character (see -d ); for
              example, -f1,7 copies the first and seventh field only.  Lines


              with no field delimiters will be passed through intact (useful
              for table subheadings), unless -s is specified.  Fields
              specified need not be present in the input.

     -n       Do not split characters.  When specified with the -b option, all
              characters ending within the range are passed to the output.

     -s       Suppresses lines with no delimiter characters in case of -f
              option.  Unless specified, lines with no delimiters will be
              passed through untouched.

     Either the -c or -f option must be specified.

     Use grep(1) to make horizontal ``cuts'' (by context) through a file, or
     paste(1) to put files together column-wise (that is, horizontally).  To
     reorder columns in a table, use cut and paste.

EXAMPLES
     cut -d: -f1,5 /etc/passwd
                           mapping of user IDs to names

     name=`who am i | cut -f1 -d" "`
                           to set name to current login name.

FILES
     /usr/lib/locale/locale/LC_MESSAGES/uxcore
          language-specific message file [See LANG on environ(5).]

EXTENDED DESCRIPTION
     X/Open CAE Specification(1994)--Commands and Utilities.

SEE ALSO
     grep(1), paste(1)

DIAGNOSTICS
     UX:cut:ERROR:line too long
                 A line can have no more than 1023 bytes or fields, or there
                 is no new-line character.

     UX:cut:ERROR:bad list for c/f option
                 Missing -c or -f option or incorrectly specified list.  No
                 error occurs if a line has fewer fields than the list calls
                 for.

     UX:cut:ERROR:no fields
                 The list is empty.

     UX:cut:ERROR:no delimiter
                 Missing char on -d option.


     UX:cut:ERROR:cannot handle multiple adjacent backspaces
                 Adjacent backspaces cannot be processed correctly.

     UX:cut:WARNING:cannot open <filename>
                 Either filename cannot be read or does not exist.  If
                 multiple filenames are present, processing continues.


                                                                        Page 3