텍스트파일의 필요한 부분만을 뽑아낼 수 있는 cut활용법2편: 특정 바이트에 해당하는 문자만 출력하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,283 조회
- 0 추천
- 목록
본문
텍스트파일의 필요한 부분만을 뽑아낼 수 있는 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 ~]# |
이번 예로서 특정 바이트자리에 해당하는 문자들을 하나 이상 동시에 출력할 수 있다는 것을 알 수 있었다.
관련자료
-
이전
-
다음