Examples

-c : 문자열 위치 지정

echo 'hello world' | cut -c 1-3 # hel

                         # ↓ 이렇게 붙여도 된다
echo 'hello world' | cut -c1-3  # hel

echo 'hello world' | cut -c 3-  # llo world

echo 'hello world' | cut -c -7  # hello w

echo 'abcd efgh ijkl' | cut -c 1-3,7-8,12   # abcfgj

echo 'abcd efgh ijkl' | cut -c 1,6,11   # aei

-d, -f : 구분자 지정, 필드 지정

  • -d: 구분자 지정
    • -d 옵션을 생략하면 cut은 기본값으로 탭 문자를 사용한다.
  • -f: 필드 지정
 # 공백을 구분자로 사용, 2 번째 필드(f) 를 출력한다
echo 'hello world' | cut -d' ' -f2

 # : 를 구분자로 사용, 필드 범위 지정하는 방법
cut -d: -f -4 /etc/passwd     # 1 ~ 4 번 필드를 출력
cut -d: -f 4- /etc/passwd     # 4 ~ 마지막 필드를 출력
cut -d: -f 2-4 /etc/passwd    # 2 ~ 4 번 필드를 출력
cut -d: -f 3,5,8 /etc/passwd  # 3, 5, 8 번 필드를 출력

다음은 -d를 생략했을 때 기본 구분자로 탭 문자를 사용하는 것을 보여준다.

$ printf 'foo\tbar\tbaz\n' | cut -f2
bar

$ printf 'foo\nbar\nbaz\n' | cut -f2
foo
bar
baz

-b : byte 단위로 자르기

echo 'hello world' | cut -b 1-3 # hel

한글 한 글자는 3바이트이기 때문에 byte 단위로 자르려면 3의 배수 단위로 지정해야 한다.

$ echo -n '안녕하세요' | cut -b 4-6
녕