cut Command
Purpose
Helps split the lines of a file.
Syntax
cut { -b List [ -n ] | -c List | -f List [ -s ] [ -d Character ] } [ File ... ]
Description
The cut command cuts bytes, characters, or fields from each line of a file and writes these bytes, characters, or fields to standard output. If you do not specify the File parameter, the cut command reads standard input.
You must specify either the -b, -c, or -f flag. The List parameter is a comma-separated, blank-separated, or hyphen-separated list of integer numbers (in increasing order). The hyphen separator indicates ranges. The following entries are some example List parameters which could refer to bytes, characters, or fields:
1,4,7
1-3,8
-5,10
3-
where -5 is a short form for the first through fifth and 3- is a short form for the third through last.
If using the cut command on fields, the length of the fields specified by the List parameter can vary from field to field and line to line. The position of the field delimiter character, such as a tab character, determines the length of a field.
You can also use the grep command to make horizontal cuts through a file and the paste command to put the files back together. To change the order of columns in a file, use the cut and paste commands.
Flags
Item | Description |
---|---|
-b List | Specifies byte positions. These byte positions ignore multibyte character boundaries unless the -n flag is also specified. |
-c List | Specifies character positions. For example, if you specify -c 1-72, the cut command writes out the first 72 characters in each line of the file. |
-d Character | Uses the character specified by the Character variable as the field delimiter when you specify the -f flag. You must put quotation marks around characters with special meaning to the shell, such as the space character. |
-f List | Specifies a list of fields assumed to be separated in the file by a delimiter character, which is by default the tab character. For example, if you specify -f 1,7, the cut command writes out only the first and seventh fields of each line. If a line contains no field delimiters, the cut command passes them through intact (useful for table subheadings), unless you specify the -s flag. |
-n | Suppresses splitting of multibyte characters. Use only with the -b flag. If the last byte of a character falls within the range denoted by the List variable of the -b flag, the character is written; otherwise, the character is excluded. |
-s | Suppresses lines that do not contain delimiter characters. Use only with the -f flag. |
Exit Status
This command returns the following exit values:
Item | Description |
---|---|
0 | All input files were output successfully. |
>0 | An error occurred. |
Examples
- To display several fields
of each line of a file, enter: cut -f 1,5 -d : /etc/passwdThis displays the login name and full user name fields of the system password file. These are the first and fifth fields (-f 1,5) separated by colons (-d :).
For example, if the /etc/passwd file looks like this:
The cut command produces:su:*:0:0:User with special privileges:/:/usr/bin/sh daemon:*:1:1::/etc: bin:*:2:2::/usr/bin: sys:*:3:3::/usr/src: adm:*:4:4:System Administrator:/var/adm:/usr/bin/sh pierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/sh joan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh
su:User with special privileges daemon: bin: sys: adm:System Administrator pierre:Pierre Harper joan:Joan Brown
- To display fields
using a blank separated list, enter:
The cut command produces:cut -f "1 2 3" -d : /etc/passwd
su:*:0 daemon:*:1 bin:*:2 sys:*:3 adm:*:4 pierre:*:200 joan:*:202
Files
Item | Description |
---|---|
/usr/bin/cut | Contains the cut command. |