>  기사  >  운영 및 유지보수  >  쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?

쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?

PHP中文网
PHP中文网원래의
2017-06-20 11:12:492477검색

정규식을 배우기 전에 먼저 명확하게 하고 명심해야 합니다. 즉:

Linux에서 와일드카드는 셸에 의해 해석되는 반면 정규식은 명령 설명에 의해 해석됩니다. 둘을 혼동합니다. 기억하다! ! !

일반적으로 세 가지 텍스트 처리 도구/명령인 grep, sed 및 awk가 있으며, 세 가지 모두 정규식을 해석할 수 있습니다. 아래에서는 grep 명령을 사용하는 방법을 소개하겠습니다.

1. grep 명령을 사용하여 파일의 내용을 검색합니다.

grep 및 egrep 명령은 하나 이상의 파일 내용에서 특정 문자 패턴을 검색할 수 있습니다. 정규 표현식이라고도 합니다. 패턴은 단일 문자, 문자열, 단어 또는 문장일 수 있습니다.

정규 표현식은 일련의 문자열을 설명하는 패턴입니다. 정규식의 구성은 연산자를 사용하여 더 작은 표현식을 새로운 표현식으로 결합함으로써 수학 표현식을 모델로 합니다. 정규식은 일반 텍스트 리터럴이거나 패턴을 생성하는 데 사용되는 특수 문자일 수 있습니다. 검색 패턴을 추가로 정의하기 위해 grep 명령은 와일드카드라고도 하는 다음 정규식 메타 문자를 지원합니다.

ps: 정규식 언어는 리터럴(일반) 텍스트 문자와 메타 문자라는 두 가지 기본 문자 유형으로 구성됩니다. 메타문자는 정규식 처리 능력을 제공합니다. 소위 메타 문자는 정규식에서 특별한 의미를 갖는 특수 문자를 말하며, 대상 객체에서 선행 문자(즉, 메타 문자 앞의 문자)의 모양 패턴을 지정하는 데 사용할 수 있습니다.

c*: 0개 이상의 문자와 일치 c

.: 단 하나의 문자와 일치(개행 제외)

[xyz]: 대괄호와 일치

의 모든 문자와 일치 [^xyz]: 대괄호 안의 문자를 제외한 모든 문자와 일치합니다.

^: 줄의 시작 부분을 잠급니다.

$: 줄의 끝 부분을 잠급니다.

at 기본 정규식에서는, *, +, {}, | 및 ()와 같은 메타 문자는 원래 의미를 잃었습니다. 원래 의미를 복원하려면 *, + 등과 같은 백슬래시가 앞에 와야 합니다.

grep 명령은 각 파일이나 표준 출력에서 ​​특정 패턴을 검색하는 데 사용됩니다. grep 명령을 사용하면 지정된 문자 패턴이 포함된 각 줄이 화면에 인쇄됩니다. grep 명령의 구문 형식은 다음과 같습니다.

grep 옵션 패턴 파일 이름

그 중 options grep 명령 검색 방법을 변경할 수 있습니다. 단, -w 옵션을 제외하고 다른 모든 옵션은 egrep 및 fgrep 명령에서 사용할 수 있습니다. grep 명령의 일반적인 옵션은 다음과 같습니다.

-c(count): 패턴이 포함된 줄 수만 나열

-i(ignore): 패턴

에 있는 문자의 대소문자를 무시합니다. -l(list): 일치하는 줄이 있는 파일 이름 나열

-n: 일치하는 줄 앞에 줄 번호 나열

-v: 일치하는 패턴이 없는 줄 나열(반전)

-w: 표현식을 완전한 단어로 검색하고 부분적으로 일치하는 줄을 무시하세요

-q : 자동 모드, 출력 없음, 실행 성공 여부, 즉 원하는 콘텐츠가 필터링되었는지 확인하려면 $?를 사용해야 합니다.

-A n : 일치에 성공하면 일치하는 줄과 다음 n 줄이 함께 인쇄됩니다.

-B n : 일치에 성공하면 일치하는 줄과 이전 n 줄이 함께 인쇄됩니다.

-C n : 일치에 성공하면 일치하는 줄과 앞뒤의 n 줄이 함께 인쇄됩니다.

ps: 여러 파일을 검색하면 grep 명령의 결과입니다. 파일에서 찾은 패턴과 일치하는 파일만 표시합니다.

단일 파일을 검색하는 경우 grep 명령의 결과는 일치하는 패턴을 포함하는 모든 줄을 표시합니다.

위는 grep 명령어를 사용하는 기본 방법입니다. 그러나 간단한 정규식으로는 검색하려는 콘텐츠를 찾을 수 없는 경우가 있습니다. 모드 1과 모드 2를 모두 만족하는 데이터 라인을 검색하려면 egrep 명령이 유용할 수 있습니다.

egrep 명령의 구문 형식은 grep 명령과 동일합니다. 그러나 egrep 명령은 확장 정규식의 메타 문자를 사용하여 하나 이상의 파일 내용에서 특정 패턴을 검색하는 데 사용됩니다. 확장된 정규식 메타 문자에는 grep 명령에 사용되는 정규식 메타 문자가 포함되며 대략 다음과 같은 추가 메타 문자도 추가됩니다.

+: 하나 이상의 선행 문자와 일치 문자

a|b: a와 일치 또는 b

(RE): 괄호 안의 정규식 RE를 일치시키고 egrep 명령 사용법을 이해합니다. grep 명령의 모든 옵션 egrep을 사용할 수 있으므로(egrep이 더 강력함) 편의상 egrep 명령을 사용하여 모든 사람에게 설명하겠습니다.

예 1: 파일에 루트가 포함된 행 표시 /etc/passwd

예제 2: /etc/passwd에서 bash를 포함하는 모든 줄을 출력하고, 이 줄 위와 아래 두 줄의 내용도 출력합니다

예 3: /etc/passwd에 nologin이 포함된 행 수 표시

예 4: /etc/passwd의 행 표시 루트를 포함하고 추가 줄 번호 하나의 출력

예 5:

새로운 사용자 생성 abominable, abominate, anomie,atomize, 정규 표현식 작성

예 6: 새 사용자 만들기 Alex213sb, Wpq2222b, yH438PIG, egon666, egon사용자 이름이 문자 + 숫자 + 문자로 구성된 행을 필터링하세요

예 7: /etc 디렉터리에서 루트가 포함된 모든 파일 이름 추출 표시

예 8: /etc/ssh/sshd_config

에서 모든 주석과 모든 빈 줄 필터링

위의 예는 단지 작은 부분일 뿐입니다. 열심히 연습하시면 곧 grep 명령 사용법을 익힐 수 있을 것입니다^^

위 내용은 쉘 프로그래밍 - grep 명령을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.