본문 바로가기

리눅스

cut 명령어

728x90

cut 명령어

cut 명령어는 텍스트 파일의 각 행이나 열에서 일부 텍스트를 추출하는 데 사용되는 유닉스 및 리눅스 명령어입니다. 주로 텍스트 처리 및 데이터 추출 작업에 유용합니다.

설치

유닉스 및 리눅스 시스템에는 보통 기본으로 설치되어 있습니다.

기본 구문

cut [옵션] [파일]

주요 옵션

  • -c, --characters=LIST : 특정 문자(열)을 추출합니다.
  • -f, --fields=LIST : 특정 필드(열)을 추출합니다. 필드는 텍스트를 구분하는 구분자에 따라 정의됩니다.
  • -d, --delimiter=DELIM : 필드를 구분하는 구분자를 지정합니다. 기본값은 탭(Tab)입니다.
  • --complement : 지정된 옵션에 반대로 동작하여 추출하지 않는 부분을 추출합니다.

사용 예시

1. 특정 문자(열) 추출

echo "Hello, World" | cut -c 1-5
$ echo "Hello, World" | cut -c 1-5
Hello

 

2. 특정 필드(열) 추출

echo "John,Doe,30" | cut -d ',' -f 1,2
$ echo "John,Doe,30" | cut -d ',' -f 1,2
John,Doe
cat /etc/passwd | cut -d ':' -f 1,3
$ cat /etc/passwd | cut -d ':' -f 1,3
root:0
daemon:1
bin:2
sys:3
man:6
www-data:33
nobody:65534
_apt:100
systemd-network:101
systemd-resolve:102
messagebus:103
systemd-timesync:104
sshd:106
syslog:107
uuidd:108
tcpdump:109
tss:110
728x90

3. 구분자를 기준으로 특정 필드(열) 추출

cat /etc/passwd | cut -d ':' -f 1
$ cat /etc/passwd | cut -d ':' -f 1
root
daemon
bin
sys
man
www-data
nobody
_apt
systemd-network
systemd-resolve
messagebus
systemd-timesync
sshd
syslog
uuidd
tcpdump
tss

이 예제에서는 /etc/passwd 파일의 각 줄에서 ':'로 구분된 첫 번째 필드(열)을 추출합니다.

 

4. 특정 필드(열) 제외하고 추출

cat /etc/passwd | cut -d ':' --complement -f 1
$ cat /etc/passwd | cut -d ':' --complement -f 1 
x:0:0:root:/root:/bin/bash
x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
x:2:2:bin:/bin:/usr/sbin/nologin
x:3:3:sys:/dev:/usr/sbin/nologin
x:6:12:man:/var/cache/man:/usr/sbin/nologin
x:33:33:www-data:/var/www:/usr/sbin/nologin
x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
x:100:65534::/nonexistent:/usr/sbin/nologin
x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
x:103:104::/nonexistent:/usr/sbin/nologin
x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
x:106:65534::/run/sshd:/usr/sbin/nologin
x:107:113::/home/syslog:/usr/sbin/nologin
x:108:114::/run/uuidd:/usr/sbin/nologin
x:109:115::/nonexistent:/usr/sbin/nologin
x:110:116:TPM software stack,,,:/var/lib/tpm:/bin/false

이 예제에서는 /etc/passwd 파일의 각 줄에서 첫 번째 필드(열)을 제외한 나머지 부분을 추출합니다.

 

5. 파일에서 특정 범위의 문자 추출

cut -c 1-20 /etc/passwd
$ cut -c 1-20 /etc/passwd 
root:x:0:0:root:/roo
daemon:x:1:1:daemon:
bin:x:2:2:bin:/bin:/
sys:x:3:3:sys:/dev:/
man:x:6:12:man:/var/
www-data:x:33:33:www
nobody:x:65534:65534
_apt:x:100:65534::/n
systemd-network:x:10
systemd-resolve:x:10
messagebus:x:103:104
systemd-timesync:x:1
sshd:x:106:65534::/r
syslog:x:107:113::/h
uuidd:x:108:114::/ru
tcpdump:x:109:115::/
tss:x:110:116:TPM so

이 예제에서는 /etc/passwd 파일의 각 줄에서 1번부터 20번까지의 문자를 추출합니다.

 

cut 명령어는 더 많은 옵션과 사용 방법을 지원하므로 man cut 명령어를 사용하여 상세한 매뉴얼 페이지를 참고할 수 있습니다.

 

728x90