Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

cut(1)

Name

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

Synopsis

/usr/bin/cut -b list [–n] [file]...
/usr/bin/cut -c list [file]...
/usr/bin/cut -f list [–d delim] [–s] [file]...

Description

cut cuts bytes, characters, or character-delimited fields from one or more files, and concatenates them on standard output.

The option argument list is a comma-separated or blank-separated list of positive numbers and ranges. Ranges can be of 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. The order of the output is that of the input.

One and only one of –b, –c, or –f options must be specified.

If no file is given, or if the file is -, cut cuts from standard input. The start of the file is defined as the current offset.

Options

The following options are supported:

–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). The 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 are 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 is 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 is used.

Examples

Example 1 Mapping user IDs

A mapping of user IDs to names follows:

example% cut -d: -f1,5 /etc/passwd
Example 2 Setting the 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
Availability
system/core-os
CSI
Enabled
Interface Stability
Committed
Standard

See Also

grep(1), paste(1), attributes(7), environ(7), standards(7)