텍스트 필터 의 grep, egreo 및 fgrep 삼 총사 및 정규 표현 식

grep, egrep, fgrep 에 대해 서 는 우리 Liux 서버 에서 자주 사용 하 는 텍스트 필터 도구 입 니 다.이 세 가지 도 구 를 잘 파악 하고 정규 표현 식 을 결합 하면 앞으로 의 운영 에 큰 도움 이 될 것 입 니 다.
1. grep, egrep, 그리고 fgrep 의 차이.
    세 가지 주요 차이 점 은 정규 표현 식 에 대한 지원 이 다르다 는 것 이다.우선, grep 는 표준 정규 표현 식 을 지원 합 니 다.egrep 및 grep - e 는 확장 정규 표현 식 을 지원 합 니 다.fgrep 에 대해 서 는 정규 표현 식 을 지원 하지 않 으 며, 본문 에서 도 더 이상 군말 하지 않 습 니 다.그러나 속도 에 있어 서 앞의 두 가지 에 비해 비교적 빠 르 고 정확하게 일치 하면 좋 습 니 다.
2. 지원 하 는 일반 옵션
옵션
역할.
--color=auto
문법 착색 설정 (alias 기본 사용 가능)
-v
역방향 선택
-o
일치 하 는 문자열 만 표시
-i
대소 문자 구분 없 음
- E (grep 만 지원)
확장 정규 표현 식 사용 하기
-A #
줄 과 그 앞 에 일치 하 는 \ # 줄 보이 기
-B #
줄 과 그 뒤에 일치 하 는 \ # 줄 보이 기
-C #
줄 과 그 앞 에 일치 하 는 \ # 줄 과 그 뒤의 \ # 줄 보이 기
3. 상용 문자 집합 (주: 정규 표현 식 의 문자 일치 에 [] 또는 [^] 를 결합 하여 사용 할 수 있 음)
[:digit:]     
[:lower:]       
[:upper:]       
[:space:]     
[:punct:]     
[:alpha:]        
[:alnum:]        

4. 표준 정규 표현 식 의 메타 문자
      (비고: 효과 가 더욱 뚜렷 해 지기 위해 별명 alias 가 설정 되 어 있 습 니 다. grep="grep --color = auto ". 사용 한 예제 파일 은 글 맨 아래 에 있 습 니 다)
  • 문자 일치
  • .: 임의의 단일 문자 와 일치 합 니 다.
    [root@localhost ~]# grep "r..t" /etc/passwd          root:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    []: 지정 한 범위 내의 임의의 단일 문자 와 일치 합 니 다.
    [root@localhost ~]# grep "r[[:alpha:]].t" /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin
    위 에서 보 듯 이 [: alpha:] 는 모든 자모의 집합 을 나타 내기 때문에 밖 에 [] 를 더 하면 모든 소문 자 중의 하나 이다.
    그래서 첫 번 째 일치 하 는 v / ftp 에서 도 두 번 째 는 알파벳 이 아니 라 일치 하지 않 았 습 니 다.
    [^] 반대로, 즉 지 정 된 범위 밖의 임의의 단일 문자 입 니 다.
    [root@localhost ~]# grep "r[^[:alpha:]].t" /etc/passwdftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    위의 그림 과 같이 [: alpha:] 는 모든 자모의 집합 을 표시 하기 때문에 밖 에 [^] 를 추가 하면 모든 소문 자 중 하나 가 아 닙 니 다.
    그래서 루트 가 일치 하지 않 고 v / ftp 가 일치 합 니 다.
  • 횟수 매 칭
  • *: 앞 글 자 를 임의로
    [root@localhost ~]# grep “b*c” testbcbbcabbbc
    \?: 이전 문자 와 0 번 또는 한 번 일치 합 니 다.
    [root@localhost ~]# grep "b\?c" testbcbbcabbbc
    \ {m, n \}: 앞의 문자 와 최소 m, 최대 n 회 일치 합 니 다.
    [root@localhost ~]# grep "b\{2,3\}c" test bbcabbbc
    \ {m \}: 앞의 문자 m 회 와 일치 합 니 다.
    [root@localhost ~]# grep "b\{2\}c" test bbcabbbc
    \ {0, n \}: 앞 에 있 는 문자 가 n 보다 많 음 을 표시 합 니 다.
    [root@localhost ~]# grep "b\{0,2\}c" test bcbbcabbbc
    \ {m, \}: 앞의 문자 와 최소 m 회 일치 함 을 표시 합 니 다.
    [root@localhost ~]# grep "b\{3,\}c" test abbbc
  • 위치 닻
  • ^: 각 줄 의 시작 위치 고정
    [root@localhost ~]# grep "^bc" test bcbbc
    $: 각 줄 의 끝 위치 고정
    [root@localhost ~]# grep "bc$" test bcbbcabbbc

    [root@localhost ~]# grep "\닻 어미     주: 특수 문자 로 구 성 된 문자열 을 포함 하지 않 는 단어 입 니 다.
    [root@localhost ~]# grep "b\>" test1ab.cd.ef
    \ b: 과 같다 \ \ \ < 또는 \ \ > 단어 왼쪽 에 닻 단어 첫 번 째, 반대로 닻 어미
    [root@localhost ~]# grep "\bcd" test1ab.cd.ef[root@localhost ~]# grep "b\b" test1ab.cd.ef
    ^ $: 문자 가 없 는 빈 줄
    [root@localhost ~]# grep "^$" test1
  • 그룹, 인용 및
  • \ (\): 문자열 한 줄 을 인용 할 수도 있 고, 횟수 와 일치 해서 사용 할 수도 있 고, 인용 할 수도 있다
    [root@localhost ~]# grep "\(abc\)\{2\}" test2abcabcabc[root@localhost ~]# grep "\(a.c\).*\1" test2 # 패턴 자체 가 아 닌 n 번 째 괄호 가 일치 하 는 내용 을 참조 하기 때문에            abczzzzzzzzza; c 는 abcabcabczzzzzzzzzzzzzzzzzzzabca; czzzzzzzzzzzzza; c 와 일치 하지 않 습 니 다.
    혹은
    [root@localhost ~]# grep "abc\|def" test3abcefabdefabcdef[root@localhost ~]# grep "ab\(c\|d\)ef" test 3 \ # 또는 앞 에 있 는 문자열 이나 뒤의 문자열 을 표시 합 니 다. 단일 문자 가 아 닌 하나의 문자 와 일치 하려 면 \ (\) 와 결합 하여 abcefabdef 를 사용 할 수 있 습 니 다.
    5. 정규 표현 식 확장
        정규 표현 식 을 확장 하 는 메타 문 자 는 대체적으로 표준 정규 표현 식 과 같 습 니 다. 다만 일부 메타 문 자 를 사용 할 때 \ 를 사용 하지 않 고 단어의 첫 번 째 닻 (\ <), 어미 닻 (\ >) 과 그룹의 인용 () 을 사용 할 때 만 의 미 를 바 꿀 수 있 습 니 다. 모드 를 더욱 간결 하고 가 독성 이 강 합 니 다. 또한 사용 할 수 있 습 니 다. + 앞의 문자 와 최소 한 번 일치 하 는 것 을 나타 낸다.
    화려 한 분할 선
     첨부:
    위 예제 에 서 는 파일 내용 을 사용 합 니 다.
    [root@localhost ~]# cat testbcbbcabbbc
    [root@localhost ~]# cat test1ab.cd.efabcdefabde.ef
    [root@localhost ~]# cat test2abcabcabcabcabczzzzzzzzzzzabca;czzzzzzzzzzza;cabczzzzzzzzzzza;c
    [root@localhost ~]# cat test3abcefabdefabcdef

    좋은 웹페이지 즐겨찾기