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

gzip으로 압축된 압축파일에서 특정 패턴의 문자 검색하는 zgrep 실무

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

gzip으로 압축된 압축파일에서 특정 패턴의 문자 검색하는 zgrep 실무

 

 

 

 

zgrep은 압축된 파일을 대상으로 특정 패턴 문자열을 검색하는 명령어입니다.

 

 

 

 즉 grep명령어가 압축되지 않은 일반텍스트파일을 대상으로 특정 문자열을 검색하듯이,  zgrep은 gzip으로 압축된 파일을 압축해제하지 않은 상태에서 특정 패턴에 해당하는 문자열을 검색할 수 있는 명령어입니다.

 

 

 

  사용하는 방식과 옵션은 grep명령어와 거의 유사하므로 grep명령어와 함께 보시면 좋을 것 같습니다.

 

 

 

  그리고 리눅스에는 grep과 zgrep뿐아니라 fgrep, egrep명령어도 함께 익혀두시는 것이 좋습니다.

 

 

 

 이 책의 각 명령어편을 참조해 주시기 바랍니다.

 

 

 

 

 

명령어위치 : /usr/bin/zgrep

 

사용형식   : zgrep [옵션] [-e] 검색패턴  검색대상파일...

 

위의 옵션에서 “옵션”에 해당하는 부분에서 허용되는 grep의 옵션을 사용하실 수 있습니다.

 

 

 

 

말씀드린바와 같이zgrep명령어를 사용하시면 gzip으로 압축된 파일에서 특정 패턴의 문자를 검색할 수 있습니다.

 

 

 

  아래의 passwd.gz파일은 /etc/passwd파일을 압축하여 백업본으로 저장하고 있는 파일입니다.

 

 

 

  이 파일을 대상으로 특정 문자를 검색해 보도록 하겠습니다.

 

 

 

 

 

[root@su250 sulinux]# ls -l

합계 4

-rw-r--r-- 1 root root 838 2009-01-03 23:11 passwd.gz

[root@su250 sulinux]#

 

아래의 예는 passwd.gz 압축파일에서 bible이라는 문자열을 검색하기 위하여 “zgrep bible passwd.gz”라는 명령어를 실행한 결과입니다.

 

 

 

  즉, 아래의 결과 bible에 대한 계정정보를 확인할 수 있습니다.

 

 

 

 

 

[root@su250 sulinux]# zgrep bible passwd.gz

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

[root@su250 sulinux]#

 

zgrep명령어를 이용하면 gzip으로 압축된 파일을 압축해제하지 않아도 특정 문자를 검색할 수 있다는 것을 알 수 있습니다.

 

 

 

 즉, gzip으로 압축된 압축파일을 대상으로 문자열을 검색할 수 있다는 것을 알 수 있습니다.

 

 

 

 

 

그리고 다음의 예는 zgrep명령어를 이용하여 passwd.gz파일에서 nologin이라는 문자열이 존재하는 행을 모두 검색한 예입니다.

 

 

 

 다음 결과의 내용을 보시면 passwd.gz이라는 압축파일의 내용 가운데 nologin이라는 행을 가진 모든 행들이 출력되었다는 것을 알 수 있습니다.

 

 

 

 

 

[root@su250 sulinux]# zgrep nologin passwd.gz

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

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

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

avahi-autoipd:x:499:499:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkituser:x:87:87:PolicyKit:/:/sbin/nologin

pulse:x:497:497:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

distcache:x:94:94:Distcache:/:/sbin/nologin

nscd:x:28:28:NSCD Daemon:/:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

nfsnobody:x:65534:494:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

avahi:x:496:492:avahi-daemon:/var/run/avahi-daemon:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

smolt:x:495:491:Smolt:/usr/share/smolt:/sbin/nologin

mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin

smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin

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

webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin

torrent:x:494:488:BitTorrent Seed/Tracker:/var/lib/bittorrent:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

squid:x:23:23::/var/spool/squid:/sbin/nologin

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

[root@su250 sulinux]#

 

그리고 위와 같이 압축파일 내에서 일치하는 모든 문자를 대상으로 검색된 내용을 모두 출력할 수 있지만 검색결과가 많은 경우에는 화면 한 페이지에 모두 출력하는 것이 부적합할 수가 있을 것입니다.

 

 

 

 그리고 일치하는 문자의 개수만 확인하고자 할 경우도 있을 것입니다.

 

 

 

 

 

zgrep명령어에서 -c옵션을 사용하시면 주어진 패턴문자에 해당하는 문자가 몇개 존재하는가를 확인할 수 있습니다.

 

 

 

 즉, 이런 경우에 –c 옵션을 사용하시면 됩니다.

 

 

 

 즉, 아래의 예에서는 압축파일 passwd.gz에서 nologin에 해당하는 문자의 개수가 몇 개 존재하는가를 확인하기 위하여 zgrep명령어에 -c옵션을 사용한 것입니다.

 

 

 

 

 

[root@su250 sulinux]# zgrep -c nologin passwd.gz

35

[root@su250 sulinux]#

 

위의 결과 압축파일 passwd.gz에는 nologin패턴과 일치하는 문자가 35개 존재함을 알 수 있습니다.

 

 

 

 이상과 같이 zgrep은 grep과 거의 유사한 형태로 사용이 가능합니다.

 

 

 

 단지 gzip으로 압축된 압축파일을 대상으로 한다는 것이 조금의 차이일 뿐입니다.

 

 

 

 

 

 

 

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,534 명
  • 현재 강좌수 :  37,615 개
  • 현재 접속자 :  105 명