CUT(1) User Commands CUT(1)
cut - cut out selected fields of each line of a file
cut -b list [-n] [file]...
cut -c list [file]...
cut -f list [-d delim] [-s] [file]...
Use the cut utility 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.
Either the -b, -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.
The following options are supported:
list
A comma-separated or blank-character-separated list of
integer field numbers (in increasing order), with
optional - to indicate ranges (for instance, 1,4,7;
1-3,8; -5,10 (short for 1-5,10); or 3- (short for third
through last field)).
-b list
The list following -b specifies byte positions (for
instance, -b1-72 would pass the first 72 bytes of each
line). When -b and -n are used together, list is
adjusted so that no multi-byte character is split.
-c list
The list following -c specifies character positions (for
instance, -c1-72 would pass the first 72 characters of
each line).
-d delim
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. delim
can be a multi-byte character.
-f list
The list following -f is a list of fields assumed to be
separated in the file by a delimiter character (see -d
); for instance, -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.
-n
Do not split characters. When -b list and -n are used
together, list is adjusted so that no multi-byte
character is split.
-s
Suppresses lines with no delimiter characters in case of
-f option. Unless specified, lines with no delimiters
will be passed through untouched.
The following operands are supported:
file
A path name of an input file. If no file operands are
specified, or if a file operand is -, the standard input
will be used.
See largefile(7) for the description of the behavior of cut when
encountering files greater than or equal to 2 Gbyte (2^31 bytes).
A mapping of user IDs to names follows:
example% cut -d: -f1,5 /etc/passwd
To set name to current login name:
example$ name=`who am i | cut -f1 -d' '`
See environ(7) for descriptions of the following environment
variables that affect the execution of cut: LANG, LC_ALL, LC_CTYPE,
LC_MESSAGES, and NLSPATH.
The following exit values are returned:
0
All input files were output successfully.
>0
An error occurred.
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
grep(1), paste(1), attributes(7), environ(7), largefile(7),
standards(7)
cut: -n may only be used with -b
cut: -d may only be used with -f
cut: -s may only be used with -f
cut: cannot open <file>
Either file cannot be read or does not exist. If multiple files
are present, processing continues.
cut: no delimiter specified
Missing delim on -d option.
cut: invalid delimiter
cut: no list specified
Missing list on -b, -c, or -f option.
cut: invalid range specifier
cut: too many ranges specified
cut: range must be increasing
cut: invalid character in range
cut: internal error processing input
cut: invalid multibyte character
cut: unable to allocate enough memory
April 29, 1999 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 delim] [-s] [file]...
DESCRIPTION
Use the cut utility 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.
Either the -b, -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.
OPTIONS
The following options are supported:
list
A comma-separated or blank-character-separated list of
integer field numbers (in increasing order), with
optional - to indicate ranges (for instance, 1,4,7;
1-3,8; -5,10 (short for 1-5,10); or 3- (short for third
through last field)).
-b list
The list following -b specifies byte positions (for
instance, -b1-72 would pass the first 72 bytes of each
line). When -b and -n are used together, list is
adjusted so that no multi-byte character is split.
-c list
The list following -c specifies character positions (for
instance, -c1-72 would pass the first 72 characters of
each line).
-d delim
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. delim
can be a multi-byte character.
-f list
The list following -f is a list of fields assumed to be
separated in the file by a delimiter character (see -d
); for instance, -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.
-n
Do not split characters. When -b list and -n are used
together, list is adjusted so that no multi-byte
character is split.
-s
Suppresses lines with no delimiter characters in case of
-f option. Unless specified, lines with no delimiters
will be passed through untouched.
OPERANDS
The following operands are supported:
file
A path name of an input file. If no file operands are
specified, or if a file operand is -, the standard input
will be used.
USAGE
See largefile(7) for the description of the behavior of cut when
encountering files greater than or equal to 2 Gbyte (2^31 bytes).
EXAMPLES
Example 1: Mapping user IDs
A mapping of user IDs to names follows:
example% cut -d: -f1,5 /etc/passwd
Example 2: Setting current login name
To set name to current login name:
example$ name=`who am i | cut -f1 -d' '`
ENVIRONMENT VARIABLES
See environ(7) for descriptions of the following environment
variables that affect the execution of cut: LANG, LC_ALL, LC_CTYPE,
LC_MESSAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0
All input files were output successfully.
>0
An error occurred.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|CSI | Enabled |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
SEE ALSO
grep(1), paste(1), attributes(7), environ(7), largefile(7),
standards(7)
DIAGNOSTICS
cut: -n may only be used with -b
cut: -d may only be used with -f
cut: -s may only be used with -f
cut: cannot open <file>
Either file cannot be read or does not exist. If multiple files
are present, processing continues.
cut: no delimiter specified
Missing delim on -d option.
cut: invalid delimiter
cut: no list specified
Missing list on -b, -c, or -f option.
cut: invalid range specifier
cut: too many ranges specified
cut: range must be increasing
cut: invalid character in range
cut: internal error processing input
cut: invalid multibyte character
cut: unable to allocate enough memory
April 29, 1999 CUT(1)