Linux / 명령어 / cut - 행에서 문자와 필드 추출

cut은 각 입력 행에서 지정한 바이트, 문자 또는 구분자 기준 필드를 골라 출력합니다. 단순한 열 추출에는 편리하지만 복잡한 CSV 파싱 도구는 아닙니다.

cut 명령어란?

필드 모드 -f는 기본적으로 탭을 구분자로 사용합니다. 콜론이나 쉼표를 쓰려면 -d를 함께 지정합니다. -c와 -b는 구현과 문자 인코딩을 고려해 선택하세요.

기본 문법

cut -d '구분자' -f 필드번호 [파일 ...]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man cut으로 현재 시스템의 설명을 확인하세요.

사용 예제

콜론 구분 필드 추출

시스템 계정 목록에서 첫 번째 필드를 추출합니다.

cut -d ':' -f 1 /etc/passwd

여러 필드 고르기

쉼표로 지정한 필드 순서는 원래 입력 순서에 따라 출력됩니다.

cut -d ':' -f 1,7 /etc/passwd

문자 범위 추출

각 행의 앞부분을 살펴볼 때 사용합니다.

cut -c 1-8 sample.txt

구분자로 필드를 추출한 결과

콜론으로 구분된 두 행에서 첫 번째 필드만 꺼내는 예제입니다. -d는 구분자, -f는 선택할 필드 번호입니다.

printf 'alpha:100\nbeta:200\n' | cut -d: -f1

예시 출력:

alpha
beta

cut -d ' ' -f2는 공백이 여러 개 연속된 텍스트를 열 기준으로 안정적으로 파싱하지 못합니다. 그런 데이터는 awk가 적합합니다. CSV처럼 따옴표 안에 구분자가 들어갈 수 있는 형식은 cut만으로 정확히 처리할 수 없으므로 전용 CSV 파서를 사용하세요.

주요 옵션과 형식

옵션·형식 설명
-d 구분자 필드 구분 문자를 지정합니다.
-f 목록 출력할 필드 번호나 범위를 고릅니다.
-c 목록 문자 위치를 선택합니다.
-b 목록 바이트 위치를 선택합니다.
-s 필드 구분자가 없는 행을 출력하지 않습니다.

사용할 때 주의할 점

cut -d ','는 인용부호 안의 쉼표나 여러 줄에 걸친 CSV 필드를 이해하지 못합니다. 그런 데이터에는 CSV 전용 파서를 사용하세요. 구분자가 없는 행은 기본적으로 그대로 출력되므로 필요하면 -s를 추가합니다.

자주 묻는 질문

공백으로 구분된 여러 열도 cut으로 추출하나요?

연속 공백의 폭이 일정하지 않다면 필드 번호가 어긋날 수 있습니다. 이런 입력은 awk가 보통 더 적합합니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 cut 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux env 명령어로 환경 변수를 추가·제거하거나 깨끗한 환경에서 프로그램을 실행하는 방법을 설명합니다. env -i·-u·-C, shebang 활용과 printenv와의 차이를 다룹니다.

Linux / 명령어 / sort - 텍스트 행 정렬

Linux / 명령어 / sort - 텍스트 행 정렬

Linux sort 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / unalias - 명령어 별칭 삭제

Linux / 명령어 / unalias - 명령어 별칭 삭제

Bash unalias 명령어로 특정 별칭이나 모든 별칭을 제거하는 방법을 설명합니다. 일시 제거와 영구 제거, 별칭 우회 및 함수·변수 삭제와의 차이를 정리합니다.

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

Linux bg 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / sed - 스트림에서 텍스트 검색·치환

Linux / 명령어 / sed - 스트림에서 텍스트 검색·치환

Linux sed 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어

Linux / 명령어

리눅스에서 자주 사용하는 명령어를 파일, 텍스트, 권한, 프로세스, 시스템, 디스크, 네트워크와 패키지 관리 작업별로 정리했습니다. 링크가 있는 명령어는 자세한 사용법과 예제를 확인할 수 있습니다.

Linux / 명령어 / rpm - RPM 패키지와 설치 데이터베이스 조회

Linux / 명령어 / rpm - RPM 패키지와 설치 데이터베이스 조회

Linux rpm 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux / 명령어 / chgrp - 파일 소유 그룹 변경

Linux chgrp 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux readlink 명령어로 심볼릭 링크에 저장된 대상 경로를 확인하는 방법을 설명합니다. 상대 링크, 깨진 링크, 경로 정규화 옵션과 realpath의 차이도 정리합니다.