정규 표현 식 옵션 분석
9632 단어 searchexpression중국어Linux 기반
grep 시 리 즈 는 세 가지 로 나 뉘 는데 그것 이 바로 grep, egrep, fgrep 이다. 그 중에서 egrep 와 fgrep 는 grep 의 파생 판 이 라 고 할 수 있다. grep 에 특수 명령 을 더 하면 egrep 와 fgrep 가 된다.이 세 가지 명령 은 텍스트 검색 도구 에 속 하 며 주어진 텍스트 를 기반 으로 모호 한 검색 을 합 니 다.
grep 의 전체 이름 은 Global search REgular expression and Print out the line 입 니 다. 중국어 로 정규 표현 식 을 이용 하여 전역 검색 을 하고 일치 하 는 줄 을 표시 한 다 는 뜻 입 니 다.이 명령 은 기본적으로 탐욕 모드 에서 작 동 합 니 다. 즉, 일치 할 수 있 는 모든 내용 과 일치 하고 일치 하 는 문자 가 줄 에 있 는 모든 내용 을 표시 합 니 다.grep [OPTIONS] PATTERN [FILE...] 형식 입 니 다.
OPTIONS 는 grep 의 옵션 입 니 다. 자주 사용 하 는 옵션 은 다음 과 같 습 니 다.
- i, -- ignore: 텍스트 문자 의 대소 문 자 를 무시 합 니 다.
이 기능 은 대소 문 자 를 구분 하고 싶 지 않 을 때 사용 할 수 있 습 니 다. 예 를 들 어 모든 대소 문자 s 자모 와 일치 합 니 다.
~]$ echo sadSdaaea | grep -i "s"
일치 하 는 결과: sadSdaaea
- v: 역방향 일치;최종 결 과 는 PATTERN 이 일치 하지 않 는 줄 입 니 다.
: “a”
~]$ cat a
sd
zx
qw
~]$ grep -v "s" a
일치 하 는 결과:
zx
qw
- c -- count: PATTERN 조건 과 일치 하 는 줄 수;
: “a” , :
~]$ grep -c "s" a
일치 하 는 결과:
1
- o -- only matching: 탐욕 모드 를 닫 고 일치 하 는 내용 만 표시 합 니 다.
일치 할 때 이 옵션 을 추가 하면 일치 하 는 결 과 를 표시 할 때 일치 하 는 내용 만 표 시 됩 니 다.
예 를 들 면:
grep -o "s" a
일치 하 는 결과:
s
이 결과 에 일치 하 는 줄 은 sd 일 것 입 니 다. 그러나 - o 옵션 을 추가 하여 "s" 자모 만 표시 합 니 다.
- q -- quiet: 조용 한 모드 로 일치 하 는 결 과 를 출력 하지 않 습 니 다.
--color=auto:
- E: 확 장 된 정규 표현 식, grep - E 는 egrep 에 해당 합 니 다.
- F -- fixed - strings: grep - F 는 fgrep 에 해당 합 니 다.
- G -- basic - regexp: 기본 정규 표현 식
egrep - G 는 grep 에 해당 합 니 다.
fgrep - G 는 grep 에 해당 합 니 다.
- P per1 - regexp: PCRE 엔진 사용 하기;
- A -- after - context = NUM: PATTERN 을 표시 하면 서 뒤에 NUM 줄 을 표시 합 니 다.
a,
]$ cat a
dasda
efaf
aew
aa
gaergaerg
aerg
aergaerg
aer
ga
ergaeg
]$ cat a |grep-A 2 "aa"
일치 하 는 결과:
aa
gaergaerg
aerg
일치 하 는 내용 을 표시 하고 뒤의 두 줄 을 표시 합 니 다.
- B -- before - context = NUM: PATTERN 을 표시 하면 서 앞 에 NUM 줄 을 표시 합 니 다.
]$ cat a |grep-B 2 "aa"
efaf
aew
aa
일치 하 는 내용 을 표시 하고 앞의 두 줄 을 표시 합 니 다.
- C -- context = NUM: PATTERN 을 표시 하면 서 앞 뒤 NUM 줄 을 표시 합 니 다.
]$ cat a |grep -C 2 "aa"
일치 하 는 결과:
efaf
aew
aa
gaergaerg
aerg
일치 하 는 내용 을 표시 하고 앞 과 뒤의 두 줄 을 표시 합 니 다.
PATTERN 은 필터 조건 으로 정규 표현 식 의 메타 문자 와 특별한 의미 가 없 는 텍스트 문자 로 구성 되 어 있 습 니 다.정규 표현 식 의 메타 문 자 는 정규 표현 식 엔진 에 의 해 특수 한 의미 로 해 석 됩 니 다.pcre - perl 언어의 정규 표현 식 엔진 은 현재 공 인 된 가장 완전한 엔진 입 니 다.정규 표현 식 의 메타 문자 로 구성 되 어 있 습 니 다.예 를 들 면:
문자 일치:
.:임의의 단일 문자 일치 하기;
]$ cat a |grep "."
일치 하 는 결과:
dasda
efaf
aew
aa
gaergaerg
aerg
aergaerg
aer
ga
ergaeg
[]: 범위 내의 임의의 단일 문자 와 일치 합 니 다.
]$ echo abcde | grep "[ace]"
일치 하 는 결과:
abcde
[^]: 지정 한 범위 이외 의 사람 에 게 단일 문자 로 일치 합 니 다.
]$ echo abcde | grep "[^ace]"
일치 하 는 결과:
abcde
다음 의 모든 문자 집합 은 [] 에 단일 문자 와 일치 하 는 데 사용 할 수 있 습 니 다.
[: lower:]: 소문 자
]$ echo 1a2D |grep "[[:lower:]]"
일치 하 는 결과:
1a2D
[: upper:]: 대문자
]$ echo 1a2D |grep "[[:upper:]]"
일치 하 는 결과:
1a2D
[: alpha:]: 모든 알파벳 은 [lower:] 와 [upper:] 의 조합 과 같 습 니 다.
]$ echo 1a2D |grep "[[:alpha:]]"
일치 하 는 결과:
1a2D
[: digit:]: 숫자 0 - 9: 0 1 2 3 4 5 6 7 8 9
]$ echo 1a2D |grep "[[:digit:]]"
일치 하 는 결과:
1a2D
[: space:]: 스페이스 바 와 탭 문자
공백 과 탭 문자 일치
[: alnum:]: 알파벳 과 숫자 는 [: alpha:] 와 [: digit:] 의 조합 과 같다.
]$ echo 1a2D |grep "[[:alnum:]]"
일치 하 는 결과:
1a2D
[: punct:]: 특수 문자:!" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` ~
]$ echo '1a2D?!@#' |grep"[[:punct:]]"( , )
일치 하 는 결과:
1a2D?!@#
[: blank:]: 공백
[: xdigit:]: 모든 16 진수: 0 1, 2, 3, 4, 5, 6, 7, 9 A B C D E F a b c d e f
]$ echo '1a2D?!@#' |grep"[[:xdigit:]]"
일치 하 는 결과:
1a2D?!@#
a - z: 모든 소문 자;
]$ echo '1a2D?!@#' |grep "[a-z]"
일치 하 는 결과:
1a2D?!@#
A - Z: 모든 대문자
]$ echo '1a2D?!@#' |grep "[A-Z]"
일치 하 는 결과:
1a2D?!@#
0 - 9: 모든 십 진법 숫자 를 표시 합 니 다.
]$ echo '1a2D?!@#' |grep "[0-9]"
일치 하 는 결과:
1a2D?!@#
횟수 일치: 이 문자 이전의 문자 가 나타 날 수 있 는 횟수;
]$ cat a | grep "[[:alpha:]]*"
일치 하 는 결과:
Dasda
Efaf
*:그 앞의 문 자 는 임 의 회 가 나타 날 수 있다. (0 회, 1 회 또는 여러 번)
\?:그 앞의 문 자 는 있 으 나 마 나 (0 회 또는 1 회)
\+:그 앞의 문 자 는 적어도 한 번 (한 번 또는 여러 번) 나타난다.
\{m \}: 앞의 문 자 는 m 번 나타 나 야 합 니 다.
]$ echo "aaaa" |grep"a\{3\}"
일치 하 는 결과:
aaaa
\{m, n \}: 앞의 문 자 는 적어도 m 번, 많 게 는 n 번 나타 납 니 다.
\{, n \}: 앞의 문 자 는 적어도 0 번, 많 게 는 n 번 나타 납 니 다.
\{m, \}: 앞 에 있 는 문 자 는 최소 m 번 나타 납 니 다.×××;
조 합 된 예:
.*:임의의 문자 가 여러 번 나타 납 니 다.
위치 고정 문자:
닻 고정:
행 두 묘 정: ^
]$ cat a
dasda
efaf
aew
aa
gaergaerg
ga
ergaeg
]$ cat a | grep "^a"
일치 하 는 결과:
aew
aa
a 로 시작 하 는 줄 과 일치 합 니 다.
행 미 닻: $
]$ cat a
dasda
efaf
aew
aa
gaergaerg
ga
ergaeg
]$ cat a | grep "g$"
일치 하 는 결과:
gaergaerg
ergaeg
글자 닻:
닻: \ \
]$ echo "as is da" | grep"\ 일치 하 는 결과:
asis da
a 자로 시작 하 는 문자열 과 일치 합 니 다.
글자 끝 닻: \ \ > 또는 \ b
\b: 옛날 버 전 은 사용 하 는 것 을 권장 하지 않 습 니 다. 왜냐하면 가끔 문제 가 생 길 수 있 기 때 문 입 니 다. 예 를 들 어 앞 닻 과 뒤 닻 은 구분 하기 어렵 습 니 다.
]$ echo "as is da" | grep"s\>" 일치 하 는 결과: as is da s 자로 끝 나 는 문자열 과 일치 합 니 다.어떤 경우 에는 시작 과 끝 이 일치 하 는 문자열 이 필요 할 수도 있 습 니 다. 위의 방법 만 사용 하면 하기 어렵 기 때문에 이 좋 은 것 을 그룹 으로 나 누고 교체 할 수 있 습 니 다. 일치 할 때 앞 에 일치 하 는 것 을 표시 한 다음 뒤에서 참조 할 수 있 습 니 다. 구체 적 인 방법 은 다음 과 같 습 니 다. \(PATTERN \): PATTERN 에 일치 하 는 문 자 를 전체 로 처리 합 니 다. 일치 하 는 메타 문자 에서 왼쪽 에서 오른쪽으로 세 고 몇 번 째 '(' 에 포 함 된 내용 은 몇 입 니까? 뒤에서 \ 1, \ 2, \ 3 을 사용 하여 참조 할 수 있 습 니 다. PATTERN1\(pattern2\)pattern3\(pattern4\(pattern5\)\) \1:pattern2 \2:pattern4 \(pattern5\) \3:pattern5 분 류 를 알 게 된 후에 우 리 는 그것 을 사용 하여 실제 작업 을 할 수 있 습 니 다. 예 를 들 어 / etc / passwd 의 uid 와 gid 가 같은 줄 을 찾 을 수 있 습 니 다. grep '\(\\).*\1' /etc/passwd 일치 할 때 우 리 는 12 나 34 와 일치 할 수도 있 습 니 다. 그러면 '\ |' 을 사용 해 야 합 니 다.이 기호 입 니 다. 그러나 이 기 호 는 양쪽 의 문자열 을 하나의 전체 로 생각 할 수 있 습 니 다. 가끔 우 리 는 각각 대소 문자 로 시작 하 는 예 를 들 어 A \ | american 을 쓰 고 싶 을 수도 있 습 니 다. 그러나 이 방법 은 잘못 되 었 습 니 다. 그 는 A 나 american 을 출력 할 것 입 니 다. 이 문 제 는 두 가지 방법 으로 해결 할 수 있 습 니 다. 하 나 는 (A \ | a) 입 니 다.merican, 두 번 째 는 모든 것 을 쓰 는 것 입 니 다: American \ | american다음은 예 를 들 어: ifconfig 명령 의 실행 결과 100 ~ 255 사이 의 정 수 를 찾 으 십시오.
첫 번 째: 1 2
위: 0 ~ 9 0~4 5
위: 0 ~ 9 0~9 0~5 답: ifcanfig|grep '\' grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] 기본 적 인 상황 에서 grep 명령 뒤에 하나의 pattern 만 허용 합 니 다. 그러나 가끔 은 우리 가 일치 하고 싶 은 여러 개의 것 과 일치 해 야 할 때 가 있 습 니 다. 그러면 이 때 는 - e 옵션 을 사용 해 야 합 니 다. - e 옵션 뒤에 하나의 pattern 을 매개 변수 로 할 수 있 습 니 다. 그러면 우 리 는 다른 것 과 동시에 일치 할 수 있 습 니 다. 편 의 를 위해 필요 한 pattern 을 기록 할 수 있 습 니 다.한 파일 에 들 어가 면 줄 마다 하나의 pattern 만 있 으 면 grep - f file 방식 으로 다 중 pattern 매 칭 을 실현 할 수 있 습 니 다.egrep 와 fgrep 는 grep 의 파생 판 이 라 고 할 수 있 습 니 다. grep 에 특수 명령 을 추가 하면 egrep 와 fgrep 가 됩 니 다. egrep 는 grep 에 - E 옵션 을 추가 하 는 것 입 니 다. 그 역할 은 뒤의 일치 하 는 매개 변 수 를 전의 없 이 적용 하 는 것 입 니 다. 기본 적 인 정규 표현 도 사용 할 수 있 고 확장 식 도 사용 할 수 있 습 니 다. fgrep 는 grep 에 - F 옵션 을 추가 하 는 것 과 같 습 니 다. pattern 의 모든 문 자 를 사용 합 니 다.작문 본 문 자 를 처리 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
선형 검색수색 프로그래밍에서 이는 값 목록에서 주어진 값 위치를 찾는 프로세스입니다. 일상 생활에서 데이터 수집에서 무언가를 찾는 것과 같이 중요한 역할을 합니다. 사전에서 단어를 찾거나 군중에서 친구를 찾아야 할 수도 있습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.