컴퓨팅에서, cut은 유닉스와 유닉스-계열 운영 시스템의 명령줄 유틸리티로, 입력 – 보통 파일에서 각 줄에서 섹션을 추출하기 위해 사용됩니다. 그것은 현재 GNU coreutils 패키지와 BSD 기본 시스템의 일부입니다.
줄 구획의 추출은 전형적으로 구분 기호 (-d — 기본적으로 탭 문자)에 의해 분리된 바이트 (-b), 문자 (-c), 또는 필드 (-f)에 의해 수행될 수 있습니다. 범위는 각 경우에서 N, N-M, N- (N에서 줄 끝까지), 또는 -M (줄의 시작에서 M까지) 중 하나로 구성되는 것으로 제공되어야 하며, 여기서 N과 M은 1에서 세어집니다 (0번째 값은 없습니다). 버전 6부터, 0번째 값을 포함하면 오류가 발생합니다. 이것 전에는 값이 무시되고 1로 가정되었습니다.
History
cut은 1987년 2호부터 X/Open 이식성 가이드의 일부입니다. 그것은 POSIX.1의 첫 번째 버전과 단일 유닉스 사양으로 상속되었습니다. 그것은 1982년 AT&T 시스템 III 유닉스에 처음 등장했습니다.
GNU coreutils에 번들된 cut 버전은 David M. Ihnat, David MacKenzie 및 Jim Meyering에 의해 작성되었습니다.
cut 명령은 IBM i 운영 시스템에도 이식되었습니다.
Examples
다음 행을 포함하는 "file"이라는 파일을 가정합니다:
foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
각 줄의 네 번째에서 열 번째 문자를 출력하려면 다음을 수행합니다:
$ cut -c 4-10 file
:bar:ba
:two:th
ha:beta
quick
콜론 문자를 필드 구분 기호로 사용하여 각 줄의 줄 끝까지 다섯 번째 필드를 출력하기 위해:
$ cut -d ":" -f 5- file
quux
five:six:seven
epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
(마지막 줄에 콜론 문자가 없기 때문에 전체 줄이 표시됨을 주목하십시오.)
옵션 -d는 필드 구분 기호 역할을 하는 단일 문자 구분 기호 (위의 예에서는 콜론임)를 지정했습니다. 옵션 -f는 출력에 포함된 필드 범위를 지정합니다 (여기서 필드 범위는 5에서 끝까지). 옵션 -d는 옵션 -f의 사용을 전제로 합니다.
공백을 필드 구분 기호로 사용하여 각 줄의 세 번째 필드를 출력하기 위해:
$ cut -d " " -f 3 file
foo:bar:baz:qux:quux
one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
brown
(처음 세 줄에는 공백 문자가 없기 때문에 이 전체 줄이 표시될 것임을 주목하십시오.)
임의의 구분 기호를 가지는 두 단어를 분리하기 위해:
$ line=process.processid
$ cut -d "." -f1 <<< $line
process
$ cut -d "." -f2 <<< $line
processid
Syntax
cut [-b list] [-c list] [-f list] [-n] [-d delim] [-s] [file]
사용될 수 있는 플래그는 다음과 같습니다:
- -b : 바이트; -b 다음에 오는 목록은 반환될 바이트 범위를 지정합니다. 예를 들어 cut -b1-66은 줄의 처음 66 바이트를 반환합니다. NB -n과 결합해서 사용하면 다중-바이트 문자가 분할되지 않을 것입니다. NNB -b는 1023 바이트 미만의 입력 라인에서만 작동할 것입니다.
- -c : 문자; -c 다음에 오는 목록은 반환될 문자 범위를 지정합니다. 예를 들어 cut -c1-66은 줄의 처음 66 문자를 반환합니다.
- -f : 구분 기호로 분리된 필드 목록을 지정합니다.
- list : 쉼표로 구분되거나 공백으로 구분된 정수 표시된 필드의 목록, 증분으로 순서화됩니다. - 표시기는 필드 범위를 포함할 수 있도록 약어로 제공될 수 있습니다. 예를 들어, 범위 4–6에 대해 4-6 또는 필드 5에서 끝까지 약어로 5-, 등.
- -n : -b와 조합에서 사용되면 다중-바이트 문자 분할을 억제합니다.
- -d : 구분기호; -d 옵션 바로 다음에 오는 문자는 -f 옵션과 결합에서 사용하기 위한 필드 구분 기호입니다. 기본 구분 기호는 tab입니다. 사용 중인 쉘 컨텍스트 내에서 특별한 의미를 갖는 공백 및 기타 문자는 필요에 따라 따옴표로 묶거나 탈출되어야 합니다.
- -s : -f가 지정될 때, 달리 표시되지 않는 한 필드 구분 기호를 포함하지 않은 줄을 무시합니다.
- file : 입력으로 처리할 파일 (및 필요하면 동반 경로). 만약 파일이 지정되지 않으면 표준 입력이 사용될 것입니다.
External links
- cut – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
- Softpanorama cut page.
- Cut out selected fields of each line of a file A portrait of cut(1) and its historical background.