| .Dd 2015-10-08 |
| .Dt CUT 1 |
| .Os sbase |
| .Sh NAME |
| .Nm cut |
| .Nd extract columns of data |
| .Sh SYNOPSIS |
| .Nm |
| .Fl b Ar list |
| .Op Fl n |
| .Op Ar file ... |
| .Nm |
| .Fl c Ar list |
| .Op Ar file ... |
| .Nm |
| .Fl f Ar list |
| .Op Fl d Ar delim |
| .Op Fl s |
| .Op Ar file ... |
| .Sh DESCRIPTION |
| .Nm |
| out bytes, characters or delimited fields from each line of |
| .Ar file |
| and write to stdout. |
| .Pp |
| If no |
| .Ar file |
| is given or |
| .Ar file |
| is '-', |
| .Nm |
| reads from stdin. |
| .Pp |
| .Ar list |
| is a comma or space separated list of numbers and ranges starting |
| from 1. Ranges have the form 'N-M'. If N or M is missing, |
| beginning or end of line is assumed. Numbers and ranges |
| may be repeated, overlapping and in any order. |
| .Pp |
| Selected input is written in the same order it is read |
| and is written exactly once. |
| .Sh OPTIONS |
| .Bl -tag -width Ds |
| .It Fl b Ar list | Fl c Ar list |
| .Ar list |
| specifies byte | character positions. |
| .It Fl d Ar delim |
| Use |
| .Ar delim |
| as field delimiter, which can be an arbitrary string. Default is '\et'. |
| .It Fl f Ar list |
| .Ar list |
| specifies field numbers. Lines not containing field |
| delimiters are passed through, unless |
| .Fl s |
| is specified. |
| .It Fl n |
| Do not split multibyte characters. A character is written when its |
| last byte is selected. |
| .It Fl s |
| Suppress lines not containing field delimiters. |
| .El |
| .Sh STANDARDS |
| The |
| .Nm |
| utility is compliant with the |
| .St -p1003.1-2013 |
| specification. |
| .Pp |
| The possibility of separating numbers and ranges with a space and specifying |
| multibyte delimiters of arbitrary length is an extension to that specification. |