cut(1)
Name
cut − cut out selected fields of each line of a file
Syntax
cut −clist [file1 file2...]
cut −flist [−dchar] [−s] [file1 file2...]
Description
Use the cut command to cut out columns from a table or fields from each line of a file. 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). The cut command can be used as a filter. If no files are given, the standard input is used.
Use grep() to make horizontal “cuts” (by context) through a file, or paste() to put files together in columns. To reorder columns in a table, use cut and paste.
Options
list Specifies ranges that must be a comma-separated list of integer field numbers in increasing order. With optional − indicates ranges as in the −o option of nroff/troff for page ranges; for example, 1,4,7; 1−3,8; −5,10 (short for 1−5,10); or 3− (short for third through last field).
−clist Specifies character positions to be cut out. For example, −c1−72 would pass the first 72 characters of each line.
−flist Specifies the fields to be cut out. For example, −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.
−dchar Uses the specified character as the field delimiter. Default is tab. Space or other characters with special meaning to the shell must be quoted. The −d option is used only in combination with the −f option, according to XPG3 and SVID2/SVID3.
−s Suppresses lines with no delimiter characters. Unless specified, lines with no delimiters are passed through untouched. Either the −c or −f option must be specified.
Examples
Mapping of user IDs to names:
cut −d: −f1,5 /etc/passwd
To set name to the current login name for the csh shell:
set name=‘who am i | cut −f1 −d" "`
To set name to the current login name for the sh, sh5, and ksh shells:
name=‘who am i | cut −f1 −d" "`
Diagnostics
"line too long" A line can have no more than 511 characters or fields.
"bad list for c/f option"
Missing −c or −f option or incorrectly specified list. No error occurs if a line has fewer fields than the list calls for.
"no fields" The list is empty.