강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법2편: 특정 바이트에 해당하는 문자만 출력하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법2: 특정 바이트에 해당하는 문자만 출력하기

 

 

 

 

cut명령어는 거의 대부분 텍스트파일을 대상으로 사용되며 cut명령어의 작업대상이 되는 파일들 가운데 가장 많이 사용되는 파일이 /etc/passwd파일, /etc/group파일, 그리고 /etc/shadow파일등이다.

 

 

 

 /etc/passwd파일은 콜론( : )으로 각 자리들이 구분되어있다.

 

 

 

 설명의 편의를 위하여 /etc/passwd파일의 각 필드에 대해서 간단히 언급하면 다음과 같다.

 

 

 

 


/etc/passwd
파일을 콜론( : )으로 구분하였을 경우의 각 항목들

계정명(ID)

패스워드

UID

GID

설명자

홈디렉토리

사용쉘

 

sspark

 

x

 

500

 

500

 

ParkSungSoo

 

/home/sspark

 

/bin/bash

첫번째필드

두번째필드

세번째필드

네번째

필드

 

다섯번째필드

 

여섯번째필드

 

일곱번째필드

 

 

 

다음 passwd라는 파일은 cut명령어의 사용예를 위하여 필자가 현재 사용중인 리눅스서버에서 /etc/passwd파일의 일부를 추출한 것이다.

 

 

 

 

 

이번 절에서 설명하는 cut명령어의 설명을 위하여 필자가 준비한 passwd파일의 내용은 다음과 같다.

 

 

 

 

 

[root@sulinux ~]#cat passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

named:x:25:25:Named:/var/named:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin

gdm:x:42:42::/var/gdm:/sbin/nologin

sspark:x:500:500:ParkSungSoo:/home/sspark:/bin/bash

sulinux:x:501:501::/home/sulinux:/bin/bash

bible:x:502:502:BIBLE:/home/bible:/bin/bash

[root@sulinux ~]#

 

 

 

먼저 특정한 자리만을 출력하고자 한다면 -b옵션을 사용하면 된다.

 

 

 

  -b옵션은 지정된 바이트(bytes)자리들을 하나하나씩 출력해주는 역할을 한다.

 

 

 

 , -b1이라고 하면 지정된 파일의 각 행들에서 1번째 byte에 해당하는 문자들만을 출력한다.

 

 

 

 그리고 -b5라고 하면 지정된 파일의 각 행들에서 5번째 byte에 해당하는 문자들만을 출력한다.

 

 

 

 

 

아래의 예는 passwd파일의 각 행들에서 첫번째 byte에 해당하는 문자들만을 출력한 것이다.

 

 

 

 

 

[root@sulinux ~]#cut -b1 passwd

r

b

d

n

s

x

g

s

s

b

[root@sulinux ~]#

 

 

 

 

다음 예는 passwd파일의 각 행들에서 다섯번째 byte에 해당하는 문자들만을 출력한 것이다.

 

 

 

 

 

[root@sulinux ~]#cut -b5 passwd

:

x

o

d

:

x

x

r

n

e

[root@sulinux ~]#

 

 

 

 

이번에는 파일내의 각 행들의 특정바이트들에 해당하는 여러문자들을 각각 출력한 예이다.

 

 

 

 , 다음 예는 passwd파일의 각 행들에서 1번째, 2번째, 3번째, 4번째, 5번째, 6번째, 7번째, 8번째 byte에 해당하는 문자들을 각각 출력한 것이다.

 

 

 

 

 

[root@sulinux ~]#cut -b1,2,3,4,5,6,7,8 passwd

root:x:0

bin:x:1:

daemon:x

named:x:

sshd:x:7

xfs:x:43

gdm:x:42

sspark:x

sulinux:

bible:x:

[root@sulinux ~]#

 

 

 

 

아래의 예는 passwd파일의 각 행들에서 21번째, 22번째, 23번째, 24번째, 25번째 byte에 해당하는 문자들을 각각 출력한 것이다.

 

 

 

 

 

[root@sulinux ~]#cut -b21,22,23,24,25 passwd

t:/bi

sbin/

/sbin

/var/

ge-se

erver

m:/sb

kSung

home/

E:/ho

[root@sulinux ~]#

 

 

 

 

이번 예로서 특정 바이트자리에 해당하는 문자들을 하나 이상 동시에 출력할 수 있다는 것을 알 수 있었다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  78 명