맨위로가기

Cut (유닉스)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

`cut`은 텍스트 파일이나 표준 입력에서 특정 부분을 추출하는 데 사용되는 유닉스 명령어이다. 벨 연구소의 고트프리드 W. R. 루데러가 개발했으며, AT&T 시스템 III 유닉스에 처음 등장했다. 주요 옵션으로는 바이트 단위 추출(-b), 문자 단위 추출(-c), 필드 단위 추출(-f) 등이 있으며, 구분자(-d)를 지정하여 필드를 나눌 수 있다. 이 명령어를 통해 텍스트 파일의 특정 문자, 바이트, 필드를 선택적으로 추출할 수 있으며, 파이프라인을 통해 다른 명령어와 함께 사용될 수도 있다.

더 읽어볼만한 페이지

  • 유닉스 텍스트 처리 유틸리티 - Tr (유닉스)
    `tr` (유닉스)는 텍스트 변환을 위한 유닉스 명령어 유틸리티로, 문자 집합 변환, 특정 문자 삭제 등의 기능을 수행하며, 다양한 옵션과 문자 집합 지정 방식을 지원하여 셸 스크립트 등에서 활용되고, 과거 정치적 악용 사례도 존재합니다.
  • 유닉스 텍스트 처리 유틸리티 - Apropos
    apropos는 사용자가 입력한 키워드와 관련된 매뉴얼 페이지를 검색하는 명령어로, man -k의 래퍼로 작동하며 대소문자를 구분하지 않고 매뉴얼 페이지의 이름 섹션에서 키워드를 검색하여 관련 페이지 목록을 반환한다.
  • 표준 유닉스 프로그램 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 표준 유닉스 프로그램 - Rm (유닉스)
    유닉스 명령어 `rm`은 파일을 삭제하는 데 사용되며, 옵션을 통해 삭제 동작을 제어하고 디렉터리를 재귀적으로 삭제할 수 있지만, 잘못 사용하면 시스템에 심각한 손상을 초래할 수 있어 주의가 필요하며 안전 장치나 휴지통 기능 등의 대안이 존재한다.
  • 유닉스 SUS2008 유틸리티 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 유닉스 SUS2008 유틸리티 - 로케일
    로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Cut (유닉스) - [IT 관련 정보]에 관한 문서
기본 정보
종류명령줄 유틸리티
개발자AT&T 벨 연구소, 다양한 오픈 소스 및 상용 소프트웨어 개발자
발표 시기1985년 2월
운영 체제유닉스, 유닉스 계열, IBM i
플랫폼크로스 플랫폼
장르명령어
라이선스coreutils: GPLv3+

2. 역사

벨 연구소의 고트프리드 W. R. 루데러가 `cut`의 원본 버전을 작성했다.[1][2] `cut`은 1987년 2판부터 X/Open 이식성 가이드의 일부이며, POSIX.1의 첫 번째 버전과 단일 유닉스 규격으로 계승되었다.[3] 1982년 AT&T 시스템 III 유닉스에 처음 등장했다.[4]

GNU coreutils에 포함된 `cut` 버전은 데이비드 M. 이나트, 데이비드 매켄지, 짐 메이어링이 작성했다.[5] 이 명령어는 UnxUtils의 일부로 마이크로소프트 윈도우용 별도 패키지로 제공되는데, 이는 일반적인 GNU 유닉스 유사 유틸리티의 네이티브 Win32 포팅 모음이다.[6] `cut` 명령어는 IBM i 운영 체제로도 포팅되었다.[7]

3. 구문

cut 명령어의 기본 구문은 다음과 같다:[1]

```text

cut [-b 목록] [-c 목록] [-f 목록] [-n] [-d 구분자] [-s] [파일]

```

cut 명령어에는 다음과 같은 플래그들을 사용할 수 있다:[1]


  • `list`: 콤마나 공백으로 구분된 정수 필드 목록으로, 점진적으로 명령된다. `-` 표시는 필드들의 범위를 포괄하기 위한 약기로서 제공된다. 예를 들어 '4-6'은 범위 4-6를, '5-'는 필드 5부터 끝까지를 나타낸다.

3. 1. 주요 옵션


  • `-b`: 바이트 단위로 추출 범위를 지정한다. `-n` 옵션과 함께 사용하면 멀티바이트 문자가 깨지지 않도록 한다.[1] 예를 들어, `cut -b1-66`은 줄의 처음 66바이트를 반환한다.[1] `-b` 옵션은 1023바이트 미만의 입력 줄에서만 작동한다.[1]
  • `-c`: 문자 단위로 추출 범위를 지정한다. 예를 들어 `cut -c1-66`은 줄의 처음 66문자를 반환한다.[1]
  • `-f`: 구획 문자로 구분된 필드 목록을 지정한다.[1]
  • `-n`: 멀티바이트 문자가 깨지지 않도록 하기 위해 `-b`와 함께 사용된다.[1]
  • `-d`: 필드 구분자를 지정한다. `-f` 옵션과 함께 사용되며, 기본 구분자는 '탭' 문자이다.[1] 사용 중인 의 문맥 안에서 특별한 의미를 지닌 공백과 다른 문자들은 반드시 따옴표를 붙이거나 필요에 따라 이스케이프(escape)해야 한다.[1]
  • `-s`: `-f` 옵션과 함께 사용되며, 필드 구분자가 없는 줄은 출력하지 않는다.[1]
  • `file`: 입력 파일명을 지정한다. 파일명을 지정하지 않으면 표준 입력이 사용된다.[1]

4. 사용 예제

`cut` 명령어는 텍스트 파일에서 특정 필드나 문자를 추출하는 데 사용된다.
기본 사용법파일의 각 행에서 특정 범위의 문자를 추출하려면 `-c` 옵션을 사용한다. 예를 들어, 다음 텍스트 파일에서 각 행의 4번째부터 10번째 문자까지 추출할 수 있다.



foo:bar:baz:qux:quux

one:two:three:four:five:six:seven

alpha:beta:gamma:delta:epsilon:zeta:eta:teta:iota:kappa:lambda:mu





$ cut -c 4-10 file



결과는 다음과 같다.



:bar:ba

:two:th

ha:beta



`-d` 옵션으로 구분자를 지정하고, `-f` 옵션으로 추출할 필드를 지정할 수 있다. 예를 들어, 콜론(:) 문자를 구분자로 사용하여 5번째 필드부터 끝까지 추출하려면 다음과 같이 한다.



$ cut -d ":" -f 5- file



결과는 다음과 같다.



quux

five:six:seven

epsilon:zeta:eta:teta:iota:kappa:lambda:mu


추가 예제

  • 공백을 구분자로 사용하여 각 줄의 세 번째 필드를 출력:




$ 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


4. 1. 파일 내용 추출

다음은 `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



각 줄의 4번째 문자부터 10번째 문자까지 추출하려면 다음과 같이 실행한다.



$ cut -c 4-10 file

:bar:ba

:two:th

ha:beta

quick



콜론(`:`)을 필드 구분자로 사용하여 5번째 필드부터 끝까지 추출하는 방법은 다음과 같다.



$ 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` 옵션과 함께 사용해야 한다.

참조

[1] 웹사이트 cut(1) - OpenBSD manual pages https://man.openbsd.[...]
[2] 웹사이트 "[TUHS] A portrait of cut(1)" https://www.tuhs.org[...] 2020-01-15
[3] 문서 cu SUS
[4] 문서 1 FreeBSD
[5] 문서 1 ManKier
[6] 웹사이트 Native Win32 ports of some GNU utilities http://unxutils.sour[...]
[7] 웹사이트 IBM System i Version 7.2 Programming Qshell https://www.ibm.com/[...] 2020-09-05



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com