Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

cut (Unix)

From Wikipedia, the free encyclopedia
Shell command for extracting sections of text files
For the more common operation related to copying and pasting, seeCut, copy, and paste.
cut
Original authorAT&T Bell Laboratories
DevelopersVariousopen-source andcommercial developers
Initial releaseFebruary 1985; 41 years ago (1985-02)
Operating systemUnix,Unix-like,IBM i
PlatformCross-platform
TypeCommand
Licensecoreutils:GPLv3+

cut is ashellcommand that extracts sections from each line of input text — usually from afile. Extraction of line segments can typically be done bybytes (-b),characters (-c), or fields (-f) separated by a delimiter (-d — thetab character by default). A range must be provided in each case which consists of one ofN,N-M,N- (N to the end of the line), or-M (beginning of the line toM), 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.

History

[edit]

The originalBell Labs version was written by Gottfried W. R. Luderer.[1][2] The command is part of theX/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX.1 and theSingle Unix Specification.[3] It first appeared inAT&T System III UNIX in 1982.[4]

The command is commonly available onUnix andUnix-likeoperating systems. It is part of theBSD Base System. The version inGNUcoreutils was written by David M. Ihnat, David MacKenzie, and Jim Meyering.[5] The command is available forWindows viaUnxUtils.[6] The command was ported to theIBM i operating system.[7]

Use

[edit]

Thecommand line consists of options and an optional file path. If no path is specified thanstandard input will be used.

Options include:

-b
Bytes; a list following-b specifies a range ofbytes which will be returned, e.g.cut -b1-66 would return the first 66 bytes of a line. NB If used in conjunction with-n, no multi-byte characters will be split. NNB.-b will only work on input lines of less than 1023 bytes
-c
Characters; a list following-c specifies a range of characters which will be returned, e.g.cut -c1-66 would return the first 66 characters of a line
-f
Specifies a field list, separated by adelimiter
list
A comma separated or blank separated list of integer denoted fields, incrementally ordered. The- indicator may be supplied as shorthand to allow inclusion of ranges of fields e.g.4-6 for ranges 4–6 or5- as shorthand for field 5 to the end, etc.
-n
Used in combination with -b suppresses splits ofmulti-byte characters
-d
Delimiter; the character immediately following the-d option is the field delimiter for use in conjunction with the-f option; the default delimiter istab. Space and other characters with special meanings within the context of theshell in use must be enquoted or escaped as necessary.
-s
Bypasses lines which contain no field delimiters when-f is specified, unless otherwise indicated.

Examples

[edit]

Given a file namedfoo with content:

foo:bar:baz:qux:quuxone:two:three:four:five:six:sevenalpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:muthe quick brown fox jumps over the lazy dog

To output the fourth through tenth characters of each line:

$cut-c4-10foo:bar:ba:two:thha:beta quick

To output the fifth field through the end of the line of each line using thecolon character as the field delimiter:

$cut-d":"-f5-fooquuxfive:six:sevenepsilon:zeta:eta:theta:iota:kappa:lambda:muthe quick brown fox jumps over the lazy dog

Because the colon 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:

$cut-d" "-f3foofoo:bar:baz:qux:quuxone:two:three:four:five:six:sevenalpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mubrown

Because the space character is not found in the first three lines these entire lines are shown.

To separate two words having any delimiter:

$line=process.processid$cut-d"."-f1<<<$lineprocess$cut-d"."-f2<<<$lineprocessid

See also

[edit]
  • awk – Text processing programming languagePages displaying short descriptions of redirect targets
  • grep – Command-line utility for text search
  • List of POSIX commands
  • paste (Unix) – Shell command for joining files horizontally
  • sed – Utility for transforming text

References

[edit]
  1. ^"cut(1) - OpenBSD manual pages".
  2. ^"[TUHS] A portrait of cut(1)". 15 January 2020.Archived from the original on 6 April 2023. Retrieved6 April 2023.
  3. ^cut – Shell and Utilities Reference,The Single UNIX Specification, Version 5 fromThe Open Group
  4. ^cut(1) – FreeBSD General CommandsManual
  5. ^cut(1) – Linux General CommandsManual from ManKier.com
  6. ^"Native Win32 ports of some GNU utilities".unxutils.sourceforge.net.Archived from the original on 2006-02-09. Retrieved2025-08-09.
  7. ^IBM."IBM System i Version 7.2 Programming Qshell"(PDF).IBM.Archived(PDF) from the original on 2020-09-18. Retrieved2020-09-05.

External links

[edit]
The WikibookGuide to Unix has a page on the topic of:Commands
File system
Processes
User environment
Text processing
Shell builtins
Searching
Documentation
Software development
Miscellaneous
File system
Text utilities
Shell utilities
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cut_(Unix)&oldid=1336332341"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp