Linux
기본명령어
cut
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
리눅스 기본명령어 - cut #
리눅스에서 파일 내용을 각 필드로 구분하고 필드별로 내용을 추출하며 각 필드들을 구분자로 구분할 수 있는 명령어이다. awk의 print $N 명령어 셋과 유사하나 제한 사항을 가지고 있으며, 스크립트를 작성할 경우 awk보다 더 간편하게 사용이 가능하다. 중요한 옵션으로는 -d(구분자)와 -f(필드 지시자)가 있다. 파일의 각 라인에서 특정 부분을 제거하거나 추출한다.
$ cut [옵션] [파일명]
-b, -c, -f 옵션을 사용할 경우 다음과 같이 특정 숫자 범위를 사용할 수 있다.
N | N 번째 바이트, 문자 또는 필드 | |||
---|---|---|---|---|
N-M | N번째부터 M번째 까지의 바이트, 문자 또는 필드(M번째 포함) | |||
M | 처음부터 M번째 까지의 바이트, 문자 또는 필드 |
옵션 #
- -b, --bytes=LIST : 바이트 단위로 선택
- -c, --characters=LIST : 문자 단위로 선택
- -d, --delimiter=DELIM : 필드를 구분짓는 기본 값은 TAB 대신에 DELIM을 사용
- -f, --fields=LIST : 지정한 필드만을 출력
- -s, --only-delimited : 필드 구분자를 포함하지 않는 줄은 미출력
- --output-delimiter=STRING : 출력할때 구분자 대신에 STRING을 사용하며, STRING는 문자나 빈칸 등을 사용
- --help : 도움말 출력
- --version : 버전정보 출력
팁 #
$ cat cut_test.txt
1234
123 456 789 #공백 구분자
123 456 789 #TAB 구분자
abc def ghi #공백 구분자
abc def ghi #TAB 구분자
위와 같은 테스트 파일이 있을 경우 -c 옵션을 사용하여 1~3까지의 문자를 출력할 수 있다.
$ cut -c 1-3 cut_test.txt
123
123
123
abc
abc
-f 옵션을 사용하면 아래와 같은 결과를 얻을 수 있다.
$ cut -f 3 cut_test.txt #파일에서 3번째 필드 출력
1234
123 456 789 #탭 단위로 라인 전체 출력
789 #3번째 탭인 '789' 출력
abc def ghi
ghi #3번째 탭인 'ghi' 출력
-d 옵션을 사용하면 아래와 같은 결과를 얻을 수 있다.
$ cut -f 2 -d 4 cut_test.txt #필드 구분 문자 : 4, 2번째 필드 출력
56 789 #'4' 이 후 필드 '56 789'만 출력
56 789 #'4' 이후의 필드인 '56 789'만 출력
abc def ghi #구분자 '4'가 없어 전체 라인 출력
abc def ghi
info와 cut이 정상적으로 설치되어 있다면 아래 커맨드를 입력하여 매뉴얼의 'cut' 정보를 확인할 수 있다.
$ info coreutils 'cut invocation'