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 강좌 / 파일과 명령 찾기 - find, locate, which, whereis

Linux 강좌 / 파일과 명령 찾기 - find, locate, which, whereis

find와 locate로 파일을 찾고 which, whereis, type으로 명령의 위치와 해석 방식을 확인합니다. 실시간 검색과 색인 검색의 차이도 짚습니다.

Linux / 명령어 / basename - 경로에서 마지막 이름 추출

Linux / 명령어 / basename - 경로에서 마지막 이름 추출

Linux basename 명령어로 경로에서 마지막 파일명이나 디렉터리 이름을 추출하고 접미사를 제거하는 방법을 설명합니다. 여러 경로와 안전한 셸 스크립트 처리 방법도 정리합니다.

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux whereis 명령어로 프로그램의 바이너리, 소스와 매뉴얼 페이지 위치를 찾는 방법을 설명합니다. 검색 범위 제한과 which·find와의 차이도 정리합니다.

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Bash help 명령어로 셸 내장 명령과 문법의 도움말을 확인하는 방법을 설명합니다. 출력 형식, 패턴 검색, type·man·--help와의 차이 및 스크립트 활용법을 정리합니다.

Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux more 명령어로 긴 텍스트를 화면 단위로 읽는 방법을 설명합니다. 이동과 검색 키, 파이프 사용법, less와의 차이를 함께 정리합니다.

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux systemctl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.

Linux 강좌 / 표준 입력·출력, 리디렉션과 파이프 이해하기

Linux 강좌 / 표준 입력·출력, 리디렉션과 파이프 이해하기

표준 입력·출력·오류의 차이를 이해하고 파일 리디렉션과 파이프를 실습합니다. 덮어쓰기 위험과 리디렉션 순서도 함께 설명합니다.

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux du 명령어로 디렉터리와 파일의 디스크 사용량을 확인하고 큰 항목을 찾는 방법을 설명합니다. apparent size, 파일시스템 경계와 df 결과가 다른 이유도 정리합니다.

Linux / 명령어 / scp - SSH로 로컬·원격 파일 복사

Linux / 명령어 / scp - SSH로 로컬·원격 파일 복사

Linux scp 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.