cut | |
Author: | AT&T Bell Laboratories |
Developer: | Various open-source and commercial developers |
Operating System: | Unix, Unix-like, IBM i |
Platform: | Cross-platform |
Genre: | Command |
License: | coreutils GPLv3+ |
In computing, '''cut'''
is a command line utility on Unix and Unix-like operating systems which is used to extract sections from each line of input — usually from a file. It is currently part of the GNU coreutils package and the BSD Base System.
Extraction of line segments can typically be done by bytes (-b
), characters (-c
), or fields (-f
) separated by a delimiter (-d
- the tab character by default). A range must be provided in each case which consists of one of N
, N-M,
N-
(N
to the end of the line), or -M
(beginning of the line to M
), where N and M are counted from 1 (there is no zeroth value). Since version 6, an error is thrown if you include a zeroth value. Prior to this the value was ignored and assumed to be 1.
The original Bell Labs version was written by Gottfried W. R. Luderer.[1] [2] is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and the Single Unix Specification. It first appeared in AT&T System III UNIX in 1982.
The version of cut
bundled in GNU coreutils was written by David M. Ihnat, David MacKenzie, and Jim Meyering. The command is available as a separate package for Microsoft Windows as part of the UnxUtils collection of native Win32 ports of common GNU Unix-like utilities.[3] The command has also been ported to the IBM i operating system.[4]
Assuming a file named "file
" containing the lines: foo:bar:baz:qux:quux one:two:three:four:five:six:seven alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu the quick brown fox jumps over the lazy dog
To output the fourth through tenth characters of each line:
bar:ba
two:thha:beta quick To output the fifth field through the end of the line of each line using the colon character as the field delimiter:
(note that because the colon character is not found in the last line the entire line is shown)
Option -d
specifies a single character delimiter (in the example above it is a colon) which serves as field separator. Option -f
which specifies range of fields included in the output (here fields range from five till the end). Option -d
presupposes usage of option -f
.
To output the third field of each line using space as the field delimiter:
To separate two words having any delimiter:
cut [-b list] [-c list] [-f list] [-n] [-d delim] [-s] [file]
Flags which may be used include: