grep 의 응용

6518 단어 shellgrep
먼저 정규 표현 식 문자 의 의 미 를 소개 합 니 다.
*  :0 개 이상 * 이전 문자
.  : 임 의 문자 일치 표시
^  : 줄 이나 문자 뒤의 비
$: 줄 끝 일치
[]: 일치 문자 집합 표시
\ :전의 부 호 를 표시 하고 원 문자 의 의 미 를 차단 합 니 다.
\\<\>: 정확 한 일치 표시
\{n\}: 앞 글자 와 일치 하 는 n 번 을 표시 합 니 다.
\{n,\}: 앞 글자 와 일치 하 는 경우 n 회 이상 나타 납 니 다.
\{n, m\}: 앞의 문자 와 일치 하면 n - m 회 이상 나타 납 니 다.
정규 표현 식 의 확장:
? :0 개 또는 1 개 앞 에 있 는 일반 문자 와 일치 하 는 것 을 표시 합 니 다.
+: 1 개 이상 의 앞 에 있 는 일반 문자 와 일치 함 을 표시 합 니 다.
(): 문자 집합 표시
| "또는"가 선택 가능 한 문자 와 일치 함 을 표시 합 니 다.
grep 는 정규 표현 식 을 지원 하 는 다 용도 텍스트 검색 도구 입 니 다. grep 의 일반 형식 은:
grep [옵션] [모드] [파일]
grep 는 하나 이상 의 파일 에서 검색 소 만족 모드 의 텍스트 줄 입 니 다. 모드 뒤의 모든 문자열 은 파일 이름 으로 간주 되 고 파일 이름 이 여러 개 입 니 다. 검색 결과 가 화면 에 인쇄 되 어 원본 파일 의 내용 에 영향 을 주지 않 습 니 다!
grep 명령 모드 는 문자열 일 수도 있 고 변수 일 수도 있 으 며 정규 표현 식 일 수도 있 습 니 다.설명 이 필요 한 것 은 어떤 패턴 이 든 패턴 에 빈 칸 이 포함 되 어 있 으 면 더 블 따옴표 로 패턴 을 일 으 켜 야 한 다 는 것 이다. 더 블 따옴표 가 없 으 면
빈 칸 뒤의 단 어 는 파일 이름 으로 오인 되 기 쉽다.
[root@slave ~]# cp /etc/passwd /root/1         // passed          
[root@slave ~]# grep root 1                    //       root   
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]# grep root /root/1 /etc/passwd      //       ,      ,         
/root/1:root:x:0:0:root:/root:/bin/bash
/root/1:operator:x:11:0:operator:/root:/sbin/nologin
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin

- c 옵션: 일치 하 는 문자열 의 수 를 표시 합 니 다. 기본적으로 grep 는 패턴 을 포함 하 는 모든 줄 을 인쇄 하고 - c 를 추가 한 후 입 니 다.모드 를 포함 하 는 줄 의 수 만 표시 합 니 다!
[root@slave ~]# grep root 1
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]# grep -c root 1
2
root@slave ~]#

- n 옵션: 일치 하 는 모든 줄 을 표시 하고 줄 번 호 를 표시 합 니 다! 
[root@slave ~]# grep -n root 1
1:root:x:0:0:root:/root:/bin/bash
11:operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]#

- v 옵션: 모드 가 포함 되 지 않 은 줄 보이 기:
[root@slave ~]# grep -v  root 1
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/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
[root@slave ~]#

- i: 옵션, grep 는 기본적으로 대소 문자 에 민감 합 니 다. - i 옵션 을 추가 하면 일부 대소 문자 입 니 다!
[root@slave ~]# echo " ROOT" >> 1                      // ROOT       
[root@slave ~]# grep root 1                          //  -i  , 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]# grep -i root 1                   // -i ,      
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
 ROOT                                     //   root 
[root@slave ~]#

h 옵션: 다 중 파일 을 조회 할 때 비 현실 적 인 파일 이름 을 표시 합 니 다. 기본 grep 는 다 중 파일 을 조회 할 때 줄 과 일치 하기 전에 파일 이름 을 표시 합 니 다. - h 옵션 을 추가 하면 grep 명령 은 파일 이름 을 표시 하지 않 습 니 다.
[root@slave ~]# grep root /root/1  /etc/passwd                        //   -h  
/root/1:root:x:0:0:root:/root:/bin/bash
/root/1:operator:x:11:0:operator:/root:/sbin/nologin
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]# grep -h root /root/1  /etc/passwd                         //  -h  
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]#

 -l 옵션 은 일치 하 는 파일 이름 만 표시 하고 일치 하 는 파일 줄 은 표시 하지 않 습 니 다.
 [root@slave ~]# grep -l root /root/1  /etc/passwd  /root/wang  /                ,       
/root/1
/etc/passwd
[root@slave ~]#

- s 옵션 을 선택 하면 텍스트 가 존재 하지 않 거나 일치 하지 않 는 오류 정 보 를 표시 하지 않 습 니 다. 기본 적 인 상황 에서 grep 는 검색 대기 소 파일 이 존재 하지 않 거나 검색 소 가 패턴 에 맞 는 텍스트 줄 이 없 을 때 잘못된 정 보 를 보 냅 니 다!
[root@slave ~]# grep  root /root/1  /root/wang1                          //  /root/wang1    ,        
/root/1:root:x:0:0:root:/root:/bin/bash
/root/1:operator:x:11:0:operator:/root:/sbin/nologin
grep: /root/wang1:          
[root@slave ~]# grep -s  root /root/1  /root/wang1                 //  -s ,         
/root/1:root:x:0:0:root:/root:/bin/bash
/root/1:operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]#

- r 옵션: grep 는 현재 디 렉 터 리 에 대해 서 만 파일 검색 을 하고 하위 디 렉 터 리 에 대해 서 는 파일 검색 을 하지 않 는 다 는 뜻 입 니 다. - r 옵션 은 재 귀적 검색 소 를 표시 합 니 다. 현재 디 렉 터 리 뿐만 아니 라 하위 디 렉 터 리 도 검색 합 니 다.
 [root@slave ~]# tree wang                                      //         
wang
└── 11
    └── passwd1

1 directory, 1 file
[root@slave ~]# grep root wang                               //  -r   
[root@slave ~]# grep -r root wang                          //  -r   
wang/11/passwd1:root:x:0:0:root:/root:/bin/bash
wang/11/passwd1:operator:x:11:0:operator:/root:/sbin/nologin
[root@slave ~]#

grep 명령 모드 는 정규 표현 식 을 지원 합 니 다. 정규 표현 식 의 메타 문 자 는 특별한 의미 로 해 석 됩 니 다. - w 옵션 은 전체 단어 와 일치 하 는 것 을 표시 합 니 다. 즉, 글자 의 의미 로 해석 합 니 다.더하기 - w 후, 원 문 자 는 더 이상 특별한 의미 로 해석 되 지 않 습 니 다!
[root@slave ~]# grep roo* 1      //  -w ,   roo         
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/roo*:/sbin/nologin
rtkit:x:498:497:RealtimeKit:/proc:/sbin/nologin
[root@slave ~]# grep -w  roo* 1           //   ,    roo*     
operator:x:11:0:operator:/roo*:/sbin/nologin
-x      ,                ,        !
 [root@slave ~]# grep root 1
root:x:0:0:root:/root:/bin/bash
root
[root@slave ~]# grep -x root 1                    //  -r    
root
[root@slave ~]#

- q 옵션: grep 는 기본적으로 출력 결과 이지 만 grep 명령 에 - q 옵션 을 추가 하면 grep 는 결 과 를 출력 하지 않 고 종료 상태 로 검색 성공 을 표시 합 니 다.
종료 상태 0 은 검색 에 성 공 했 음 을 표시 합 니 다. 1 은 만족 모드 의 텍스트 줄 을 검색 하지 못 했 음 을 표시 합 니 다. 2 는 명령 이나 프로그램 이 오류 로 두 사람 이 실 행 했 음 을 표시 합 니 다!
[root@slave ~]# grep -q root 1     
[root@slave ~]# echo $?                             //               
0
[root@slave ~]# grep -q ROOT 1
[root@slave ~]# echo $?
1
[root@slave ~]# grep -q ROOT 213                 //           
grep: 213:          
[root@slave ~]# echo $?
2
[root@slave ~]#

좋은 웹페이지 즐겨찾기