> php教程 > PHP开发 > 본문

grep 명령 및 관련 예제에 대한 자세한 설명

高洛峰
풀어 주다: 2016-12-13 14:40:17
원래의
1116명이 탐색했습니다.

1. 문자 일치

. 단일 문자 일치

[ ] 지정된 범위 내의 모든 문자 일치

[^] 지정된 범위 내의 모든 문자 일치

[:alpha:] 알파벳 문자

[:lower:] 알파벳 소문자

[:upper:] 알파벳 대문자

[:digit : ] 숫자

[:alnum:] 영숫자

[:space:] 캐리지 리턴, 라인 피드, 세로 탭, 피드 등 공백 문자(인쇄 금지) 페이지 나누기

[:punct:] 구두점 문자

[:cntrl:] 제어 문자(인쇄 금지)

[:print:] 인쇄 가능한 문자

일반적으로 두 개를 사용합니다. 다음 예에서는 대괄호를 사용합니다.

2. 일치 횟수

* 언제든지 이전 문자와 일치합니다.

.* 모든 길이의 문자와 일치합니다(grep "r.*와 같은 탐욕스러운 모드에 유의하세요). t" /etc/passwd )

x{m,n} 선행 문자가 최소 m번, 최대 N번 나타나도록 지정합니다.

x{m,} 선행 문자가 최소 m번 나타나도록 지정합니다.

x{0,n} 선행 문자가 최대 N번 나타나도록 지정합니다.

x {m} m번 정확하게 일치

? 선행 문자를 0 또는 1번 일치

3. 앵커

1.^ 줄 시작 부분에 앵커 grep "^ r..t " /etc/passwd

2.$ 앵커 라인 끝 grep "h$" /etc/passwd

3.^$ 앵커 빈 라인 grep "^$" /etc /passwd

4.< (b) grep "

5.> 단어 시작 부분 grep "r ..t>" /etc/passwd

예(혼동하기 쉬움):

에는 하나 이상의 공백 문자가 포함되어 있습니다. grep "[[:space:] ]{1,}" /etc/passwd

에는 공백이 아닌 문자가 하나 이상 포함되어 있습니다. grep "[^[:space:]]{1,}" /etc/passwd

에는 다음이 포함됩니다. 공백 문자가 없습니다 grep -v "[^[:space :]]{1,}" /etc/passwd

6. () 그룹 문자 grep "(l..e).*1r"

예:

grep --color "l([13]):1:.*:1" /etc/inittab

4. 옵션

-v 결과 부정

-i 대소문자 무시

-o 일치하는 문자열만 표시(행의 다른 내용은 표시되지 않음)

- E 확장 정규 표현식 지원

-A n 일치하는 줄 아래에 n 줄 표시

-B n 일치하는 줄 위에 n 줄 표시

-C n 위에 n 줄 표시 그리고 일치하는 줄 아래

연습:

1. 시스템에서 user1에 대한 관련 정보를 찾습니다. (user11, myuser1을 미리 생성) (오류 발생 가능성 있음)

grep "user1" /etc/passwd user1을 포함하는 모든 줄

grep "" /etc/passwd Surface OK , 그러나 다음 사용자를 추가하면 작동하지 않습니다.

useradd -c "user1's 삼촌" /etc/passwd -c는 주석입니다

grep "^"

일치 2. 사용자로 시작하고 뒤에 숫자가 오는 시스템에서 사용자에 대한 관련 정보를 찾습니다.

grep "^user[0-9]{1,}>" /etc/passwd

3. /etc/inittab에서 다음 두 줄의 텍스트 특성을 분석합니다. 유사한 두 줄 패턴이 발견된

에서는 각 줄의 숫자가 동일해야 합니다.

l1:1:wait:/etc/rc.d/rc 1

l3:3:wait:/etc/rc.d/rc 3

grep " l([13]):1:.*:.* 1" inittab

확장: 위의 모든 특성과 일치: grep "l([0-9]):1:.*:.* 1 " inittab

10을 초과하는 경우 최소 일치 항목을 추가해야 합니다: grep "l([0-9]{1,}):1:.*:.* 1" inittab

4. /proc/meminfo 파일에서 대소문자를 구분하지 않고 s로 시작하는 행을 표시합니다.

grep "^[sS]" /proc/meminfo

5. nologin 포함

grep "nologin$" /etc/passwd

행 6. #으로 시작하고 그 뒤에 하나 이상의 공백 문자가 오고 그 뒤에 임의의 행이 오는 /etc/inittab을 표시합니다. 공백이 아닌 문자 사용

grep "^#[[:space:]]{1,}[^[:space:]]" /etc/inittab

7. /inittab에는 두 개의 콜론 사이에 숫자가 있는 줄이 포함되어 있습니다

grep ":[0-9]:" /etc/inittab

8. /boot/grub/grub.conf 표시 파일에 하나 이상의 공백 문자가 있는 경우

grep ":[0-9]:" /etc/inittab

9. 숫자로 시작하고 끝나는 /etc/inittab 파일을 표시합니다. 같은 숫자로 시작하는 숫자로.

grep "^([0-9]).*1$" /etc/inittab

10. /etc/inittab 파일에 공백이 아닌 줄 표시

grep -v "^$" /etc/inittab

11. 현재 네트워크 인터페이스의 관련 IP 주소를 가져옵니다(127.0.0.1 제외)

ifconfig |grep "inet addr" | grep - v "127.0.0.1"| 컷 -d: -f2|컷 -d" " -f1

ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]{1,}"|cut -d: -f2

5. 확장 정규식

과 정규 표현식의 차이점:

()는 ()로 대체됩니다.

{}는 {}

회 이상 일치로 대체됩니다. 선행 문자 수

| 또는

예:

는 ifconfig 결과에 나타나는 1-255 사이의 정수와 일치합니다.

ifconfig |grep --color -E "<([1-9]|[1-9][0-9]|1[1-9][0-9]|2[0-5][0- 5 ])>"


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!