파일에서 각 줄에 대해 조건을 만족하는 일부분만 출력하는데 이용된다.
cut OPTION... [FILE]...
OPTION
: cut
의 동작방식을 결정
FILE
: 필터링 대상 파일. 없을 경우 입력값에 대해서 받는다.
$ cat example.txt
sed is a stream editor.
A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
But it is sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
-b
, -c
, -f
가 여기에 해당된다.
저 세개 중 하나가 무조건 들어가야 하며, 저 세개 중 2개 이상이 들어가서도 안된다. 즉 하나만 선택을 해서 사용해야 한다.
-b
)-b
는 몇번째 byte를 추출할지를 정한다. 일반적으로 텍스트 파일이 ASCII 형식으로 encode 되어 있으니 가능한 방식.$ cut -b 8 example.txt
a
m
n
i
-c
)-c
는 어떤 문자'들'을 추출할지를 정한다. -b
처럼 여전히 숫자를 기준으로 하나, -
을 사용해서 특정 범위의 문자들을 추출하는 것이 가능하다.$ cut -c 2 example.txt
e
h
u
-c
의 경우 특정 위치 이전, 특정 위치 이후에 대해서 추출하는 것도 가능하다.$ cut -c -4 example.txt
sed
A st
Whil
But
~$ cut -c 10- example.txt
stream editor.
editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
-f
)-f
는 delimiter을 기준으로 줄을 여러 field로 나눴을 때, 어떤 field를 추출할지를 지정해가지고 사용한다. 기본 delimiter은 탭이다. (\t
).
delimiter을 아예 포함하지 않는 문장의 경우 그냥 통째로 출력을 한다. 이 때문에 예제에 \t
가 없어서 -f
를 쓰면 그냥 파일 전체를 출력한다.
$ cut -f 3 example.txt
sed is a stream editor.
A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
But it is sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
-d
)-f
에서만 활용
\t
말고 다른 delimiter을 지정하고 싶으면 -d
를 사용하면 된다.
$ cut -d ' ' -f 3 example.txt
a
editor
some
is
-
, ,
)쉼표를 사용하면 여러 위치에 대해서 지정이 가능하며, -
을 사용하면 특정 범위에 대해서 지정이 가능하다.
,
관련 예시
sycho@DESKTOP-4RPUOID:~$ cut -b 8,10 example.txt
as
me
ns
i
sycho@DESKTOP-4RPUOID:~$ cut -c 8,10 example.txt
as
me
ns
i
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f 1,3 example.txt
sed a
A editor
While some
But is
-
관련 예시sycho@DESKTOP-4RPUOID:~$ cut -b 8-10 example.txt
a s
m e
n s
is
sycho@DESKTOP-4RPUOID:~$ cut -c 8-10 example.txt
a s
m e
n s
is
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f 1-3 example.txt
sed is a
A stream editor
While in some
But it is
-
로 이전, 이후를 추출하는 예시sycho@DESKTOP-4RPUOID:~$ cut -b -8 example.txt
sed is a
A stream
While in
But it i
sycho@DESKTOP-4RPUOID:~$ cut -c -8 example.txt
sed is a
A stream
While in
But it i
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f -3 example.txt
sed is a
A stream editor
While in some
But it is
sycho@DESKTOP-4RPUOID:~$ cut -b 15- example.txt
m editor.
r is used to perform basic text transformations on an input stream (a file or input from a pipeline).
ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
��s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
sycho@DESKTOP-4RPUOID:~$ cut -c 15- example.txt
m editor.
r is used to perform basic text transformations on an input stream (a file or input from a pipeline).
ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
��s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f 4- example.txt
stream editor.
is used to perform basic text transformations on an input stream (a file or input from a pipeline).
ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
--complement
)(밑은 cut -d ' ' -f -3 example.txt와 실질적으로 동일)
$ cut -d ' ' -f 4- --complement example.txt
sed is a
A stream editor
While in some
But it is
-s
)-f
에서만 활용.
delimiter이 없는 문장도 출력을 아예 안하도록 설정.
sycho@DESKTOP-4RPUOID:~$ cut -sf 3 example.txt
(출력 없음)
--output-delimiter
)-f
에서만 활용
출력에서 사용할 delimiter을 설정. 여러 문자도 가능하다.
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f 3-5 --output-delimiter ? example.txt
a?stream?editor.
editor?is?used
some?ways?similar
is?sed’s?ability
sycho@DESKTOP-4RPUOID:~$ cut -d ' ' -f 3-5 --output-delimiter ?@! example.txt
a?@!stream?@!editor.
editor?@!is?@!used
some?@!ways?@!similar
is?@!sed’s?@!ability
\n
대신 \0
으로 설정 (-z
)-c
, -b
, -f
모두 활용.
이러면 실질적으로 첫 줄에 대한 결과만 나오게 되며 출력도 이상해진다.
sycho@DESKTOP-4RPUOID:~$ cut -zb 3-5 example.txt
d isycho@DESKTOP-4RPUOID:~$ cut -zc 3-5 example.txt
d isycho@DESKTOP-4RPUOID:~$ cut -d ' ' -zf 2-4 example.txt
is a streamsycho@DESKTOP-4RPUOID:~$