텍스트 필터 의 grep, egreo 및 fgrep 삼 총사 및 정규 표현 식
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.