Linux grep, egrep 및 해당 정규 표현 식 용법 상세 설명
6881 단어 linuxsearch표현 식expressionAlways
정규 표현 식 (REGular EXPression REGEXP) 은 문자 자체 의 의 미 를 나타 내지 않 고 사용자 가 지정 한 텍스트 모드 (정규 표현 문자 및 정상 문자 조합) 에 따라 대상 파일 을 한 줄 씩 검색 하여 일치 하 는 줄 을 표시 합 니 다.
먼저 정규 표현 식 grep 명령 의 용법 과 자주 사용 하 는 옵션 의 응용 및 간단 한 예 시 를 설명 합 니 다.
grep [OPTIONS] PATTERN [FILE...]
--color=auto 자동 표시 }
언제나 가끔 } 일치 하 는 내용 을 빨간색 으로 자동 으로 표시 할 지 여부
never 표시 되 지 않 음 }
-o: 일치 하 는 내용 만 표시
-i: ignore case, 모든 문자 대소 문자 구분 없 음
-v: 패턴 에 일치 하지 않 는 줄 보이 기
-E: 확 장 된 정규 표현 식 사용 하기
-A \ #: 패턴 에 맞 는 줄 과 뒤에 \ # 줄
-B \ #: 패턴 에 맞 는 줄 과 앞 \ # 줄
-C \ #: 패턴 에 맞 는 줄 과 앞 뒤 \ # 줄
예제 1: 일치 하 는 문자 빨간색 보이 기
[root@localhost ~]# grep --color=auto "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
2:
[root@localhost ~]# grep -o --color=auto "root" /etc/passwd
root
root
root
root
:
:
. :
[]:
: [root@localhost ~]# grep "[Cc]a" /etc/rc.d/rc.sysinit
Ca ca,a ,C/c , Ca ca 。
[^] :
[0-9]、[[:digit:]] 0-9
[^0-9]、[^[:digit:]] 0-9
[a-z]、[[:lower:]] a-z
[A-Z]、[[:upper:]] A-Z
[[:space:]]
[[:punct:]]
[0-9a-zA-Z]、[[:alnum:]]
[a-zA-Z]、[[:alpha:]]
: , 。
* :
:"ab*c" ab……bc b
abbc ,ac
abb,
.* : ( , )
[root@localhost ~]# grep "r.*t" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
\? :0 1 , " ab \?c " abc ,ac abbc
\+ : 1 , 1 ;
" ab \+c "
ac ,
abc,abbbbc
\{m\} :m , m ;
\{m,n\}: m , n ;
"ab\{2\}c" 2 -> abbc
\{0,n\} : n "ab\{0,3\}c" 0~3 -> ab、 abbc 、abbbc
\{m,\} : m
"ab\{1,\}c" -> ab、 abbc 、abbbc 、 ab…bc
위치 고정:
^ :닻 줄 머리, ^ PATTERN
$:닻 줄 끝, PATTERN $
^PATTERN $: 줄 전체 내용 을 패턴 으로 일치 시 킵 니 다.
^$ :공백 줄 일치 하기;
예: 줄 전체 내용 과 일치 하 는 데 사용
[root@localhost ~]# grep "^sh.*sh$" /etc/passwd
sharang:x:5002:5002::home/sharang:/bin/tcsh
단어 닻: 특수 문자 가 아 닌 연속 문자열
닻 \< PATTERN 또는 \ b [root@localhost tmp]# grep "\
닻 어미: PATTERN \ \ > 또는 PATTERN \ b
\
예: 두 자리 숫자 일치
[root@localhost ~]# ifconfig | grep "\<[0-9]\{2\}\>"
eth0 Link encap:Ethernet HWaddr 00:0C:29:5A:B6:F5
inet addr:192.168.191.16 Bcast:192.168.191.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5a:b6f5/64 Scope:Link
그룹: \ (\)
메모: 그룹 에 있 는 모드 입 니 다. 특정한 일치 과정 에서 일치 하 는 문 자 는 grep 기억 (내 장 된 변수 에 저 장 됩 니 다. 이 변 수 는 \ 1, \ 2,...) 이 므 로 인용 할 수 있 습 니 다.
\1: 참조, 패턴 은 왼쪽 에서 오른쪽으로, 첫 번 째 왼쪽 괄호 와 이에 대응 하 는 오른쪽 괄호 의 패턴 에 일치 하 는 내용 입 니 다.
\2: 참조, 모드 에서 왼쪽 에서 오른쪽, 두 번 째 왼쪽 괄호 와 이에 대응 하 는 오른쪽 괄호 중의 모드 에서 일치 하 는 내용;
\(ab\(cd\)\) \1 \2 \1 ab 에 일치 \2 cd 에 일치
(1) He like his lover.
(2) He like his liker.
(3) She love her lover.
(4) She love her liker.
"\(l..e\).*\1" 위 내용 과 일치 할 수 있 습 니 다.
다음은 확 장 된 정규 표현 식 egrep 이자 일치 하 는 표현 식 을 검색 하 는 모드 입 니 다. grep 의 차이 점 은 전의 자 를 추가 하지 않 아 도 됩 니 다 \ \, 문자 일치, 횟수 일치, 위치 고정, 그룹 을 나 누 는 용법 이 같 습 니 다.
문자 일치:.: 단일 문자 일치
[]: 임의의 단일 문자 일치
[^]: 범위 밖의 임의의 단일 문자 와 일치 합 니 다.
횟수 일치:
*:임 의 회
?:0 회 혹은 1 회
+ :최소 1 회
{m}: m 회 정확하게 일치
{m, n}: 최소 m 회, 최대 n 회
{m,}: 최소 m 회
{0, n}: 최대 n 회
위치 고정:
^: 닻 을 내리다.
$ : 닻 꼬리
\<、\닻
\>、\:닻 어미
그룹:
(): 인용: \ 1, \ 2...
또는:
a | b: a 또는 b 또는 양쪽 의 모든 내용;
예: meminfo 에서 S 또는 s 로 시작 하 는 줄 과 일치 합 니 다.
# egrep "^(S|s)" /proc/meminfo
마지막 fgrep 명령 은 주어진 문자열 이나 어구 와 일치 하 는 줄 을 하나 이상 찾 는 데 사 용 됩 니 다. fgrep 검색 속 도 는 grep 명령 보다 빠 르 지만 유연 하지 않 습 니 다. 규칙 표현 식 이 아 닌 고정된 텍스트 만 찾 을 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.