cut (Unix)
In computing, cut is a Unix command line utility which is used to extract sections from each line of input — usually from a file.
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.
Examples
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:teta:iota:kappa:lambda:mu the quick brown fox jumps over the lazy dog
To output the fourth through tenth characters of each line:
% cut -c 4-10 file
This gives the output:
:bar:ba :two:th ha:beta quick
To output the fifth field through the end of the line of each line using the colon character as the field delimiter:
% cut -d ":" -f 5- file
This gives the output:
quux five:six:seven epsilon:zeta:eta:teta:iota:kappa:lambda:mu the quick brown fox jumps over the lazy dog
(note that as the colon character is not found in the last line the entire line is shown)
To output the third field of each line using space as the field delimiter:
%cut -d " " -f 3 file
This gives the output:
foo:bar:baz:qux:quux one:two:three:four:five:six:seven alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu brown
(note that as the space character is not found in the first three lines these entire lines are shown)