링크 ux 텍스트 처리 도구 grep

grep 프로필
   grep 는 정규 표현 식 으로 파일 을 검색 하고 일치 하 는 줄 을 인쇄 할 수 있 는 강력 한 텍스트 검색 도구 입 니 다.유 닉 스 의 가족 은 grep, egrep, fgrep 를 포함한다.
   grep: 기본 정규 표현 식 지원
   egerp: 정규 표현 식 확장
   fgrep: 정규 표현 식 문자 가 지원 되 지 않 습 니 다. 문자열 을 검색 하 는 속도 가 빠 릅 니 다.
grep 용법
   grep [options] 'pattern' FILE
   옵션:
   -v                    역방향 선택, 패턴 에 맞지 않 는 줄 만 표시
   -o                    전체 줄 이 아 닌 패턴 에 일치 하 는 문자열 만 표시 합 니 다.
   -i                    문자 대소 문자 구분 없 음
   -A                    일치 하 는 줄 을 표시 하 는 것 외 에 N 줄 을 표시 합 니 다.
   -B                    일치 하 는 줄 을 표시 하 는 것 외 에 앞의 N 줄 을 표시 합 니 다.
   -C                    일치 하 는 줄 을 표시 하 는 것 외 에 앞 뒤의 N 줄 을 표시 합 니 다.
   -E                    확 장 된 정규 표현 식 grep - E = egrep 사용 하기
   --color=auto          일치 하 는 줄 강조
3. 정규 표현 식http://mybsir.blog.51cto.com/4618614/1371362)
4. 정규 일치 예제
   시험 일치 파일 / etc / passwd
   1. 루트 가 있 는 줄 과 일치 합 니 다.
   grep 'root' /tmp/grep.txt
[root@myb362 ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

   2. 루트 를 비롯 한 줄 과 일치 합 니 다.
   grep '^root' /etc/passwd
[root@myb362 ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash

   3. bash 로 끝 나 는 줄 과 일치 합 니 다.
   grep 'bash$' /etc/passwd
[root@myb362 ~]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash

   4. 공백 줄 일치
   grep '^$' /etc/fstab
[root@myb362 ~]# grep '^$' /etc/fstab
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
[root@myb362 ~]#

   5. 일치 하 는 숫자
   grep '[0-9]' /etc/passwd
[root@myb362 ~]# grep '[0-9]' /etc/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
...........

   6. r 와 일치 하 는 두 개의 임의의 문자 와 t 의 줄 을 이 어 갑 니 다.
   grep 'r..t' /etc/passwd
[root@myb362 ~]# grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

   7. r 뒤에 임의의 문자 와 일치 하 는 다음 t 줄
   grep 'r.*t'    /etc/passwd
[root@myb362 ~]# grep 'r.*t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

설명:. 임의의 문 자 를 표시 합 니 다. * 임의의 횟수 앞의 문 자 를 표시 하면. * 임의의 횟수 의 임의의 문 자 를 표시 합 니 다.
8. s 뒷 굽 h 또는 y 와 일치 하 는 줄
   grep 's[h,y]' /etc/passwd
[root@myb362 ~]# grep 's[h,y]' /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

   9. s 와 일치 한 후 알파벳 a 에서 w 사이 의 문자 가 아 닌 줄
   grep 's[^a-w]' /etc/passwd
[root@myb362 ~]# grep 's[^a-w]' /etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
games:x:12:100:games:/usr/games:/sbin/nologin

   10. sbin 또는 bin, 즉 s 가 0 번 또는 1 번 나타 나 는 것 과 일치 합 니 다.
   grep 's\?bin' /etc/passwd = grep -E 's?bin' /etc/passwd = egrep 's?bin' /etc/passwd
[root@myb362 ~]# grep 's\?bin' /etc/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
adm:x:3:4:adm:/var/adm:/sbin/nologin
.........

   11. 빈 을 단어 로 하 는 줄 과 일치 합 니 다.
   grep '\[root@myb362 ~]# grep '\<bin' /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync
   12. 빈 을 어미 로 하 는 줄 과 일치 합 니 다.
   grep 'bin\>' /etc/passwd
[root@myb362 ~]# grep 'bin\>' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......

   13. 단어 빈 일치
   grep '\' /etc/passwd
[root@myb362 ~]# grep '\<bin\>' /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......

   14. r 와 일치 하면 1 개 또는 2 개의 o 줄 이 있 습 니 다.
   grep 'ro\{1,2\}' /etc/passwd
[root@myb362 ~]# grep 'ro\{1,2\}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

   15. 루트 와 일치 한 후 임의의 여러 문자 와 일치 한 후 루트 줄 과 일치 합 니 다.
   grep 'root.*root' grep.txt
   16. 일치 rt 중간 에 임의의 두 글자 가 있 습 니 다. 뒤쪽 은 이전 모드 와 같은 줄 입 니 다. 즉, 앞의 모드 가 root 이면 뒤에 있 는 것 도 반드시 root 이 어야 합 니 다. rbat 나 다른 모드 가 아 닙 니 다.
   먼저 grep. txt 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
rootrabt
rootroot
ROOT
Root

   grep '\(r..t\)\1' grep.txt
[root@myb362 ~]# grep '\(r..t\)\1' grep.txt
rootroot

   grep 'r. tr. t' grep. txt 를 사용 하면 둘 다 일치 합 니 다.
   grep 'r..tr..t' grep.txt
[root@myb362 ~]# grep 'r..tr..t' grep.txt
rootroot
rootrabt

   우 리 는 여러 그룹 을 설정 하여 몇 번 째 그룹 을 참조 하 는 것 을 표시 할 수 있 습 니 다.
   17. 일치 하 는 내용 을 하 이 라이트 로 표시 합 니 다.
   grep --color=auto 'root' /etc/passwd    
   [root@myb362 ~]# grep --color=auto 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
   operator:x:11:0:operator:/root:/sbin/nologin
   18. 일치 하 는 내용 을 역방향 으로 선택 grep - v
   ifconfig | grep 'inet' 는 IP 주소 와 일치 하 는 줄 을 표시 합 니 다.
[root@myb362 ~]# ifconfig | grep 'inet'
          inet addr:192.168.144.129  Bcast:192.168.144.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef9:649a/64 Scope:Link
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host

   ifconfig | grep 'inet'|grep '127.0.0.1'    일치 하 는 줄 보이 기
[root@myb362 ~]# ifconfig | grep 'inet' |grep '127.0.0.1'
          inet addr:127.0.0.1  Mask:255.0.0.0

   ifconfig | grep 'inet' | grep - v '127.0.0.1' 은 일치 하 는 줄 을 표시 하지 않 습 니 다.
[root@myb362 ~]# ifconfig | grep 'inet' |grep -v '127.0.0.1'
          inet addr:192.168.144.129  Bcast:192.168.144.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fef9:649a/64 Scope:Link
          inet6 addr: ::1/128 Scope:Host

   19. 파일 의 대소 문자 grep - i 무시
   grep -i 'root' grep.txt
[root@myb362 ~]# grep -i 'root' grep.txt
rootroot
rootrabt
ROOT
Root

   20, 루트 또는 루트 와 일치 하 는 줄
   grep -E '(root)|(ROOT)' grep.txt
[root@myb362 ~]# grep -E '(root)|(ROOT)' grep.txt
rootroot
rootrabt
ROOT

이상 은 grep 와 egrep 의 기본 용법 입 니 다.

좋은 웹페이지 즐겨찾기