목차
1. 기본 대 확장 정규 표현식 이해
2. Regex와 일치하는 실용적인 패턴
단어 경계를 일치시킵니다
특정 패턴으로 시작/종료 라인을 일치시킵니다
여러 패턴과 일치 (교대)
3. 캐릭터 클래스 및 정량 자
사전 정의 된 문자 클래스를 사용하십시오
반복을위한 정량 자
4. REGEX 사용을 향상시키는 고급 옵션
5. 일반적인 함정과 팁
시스템 튜토리얼 리눅스 Linux의 정규 표현식으로 고급`Grep '사용

Linux의 정규 표현식으로 고급`Grep '사용

Aug 13, 2025 pm 12:51 PM
정규식 grep

패턴 구문,?, | 및 ()를 단순화하기 위해 확장 정규 표현식에 -e를 사용합니다. 2. 전체 단어와 일치하려면 \ b 또는 posix [[: <:> :]]로 단어 경계를 적용합니다. 3. ^와 $ to to target 라인 시작 및 엔딩을 사용하는 앵커 패턴; 4. 여러 패턴을 | 논리적이거나 일치하는 것; 5. 정확한 반복 제어를 위해 [[: digit :]] 및 Quantifiers와 같은 posix 문자 클래스를 활용합니다. 6. Case Insensitivity for -V와 같은 옵션으로 검색을 향상시키고 -V는 일치 경기를 반전시키기, -n 라인 번호를 표시하기 위해 -r, 재귀 디렉토리 검색의 경우 -r, 일치하는 부품 만 추출하려면 -O, Perl -Compatible Regex의 경우 -p; 7. 항상 쉘 확장을 방지하기 위해 패턴을 인용하고, 테스트 패턴을 점차적으로 사용하고, -Color = 항상 가시성을 사용하고, GREP를 고급 텍스트 처리를 위해 Sort 및 UNIQ와 도구와 결합하여 로그 분석, 코드 검토 및 시스템 관리 작업에서 효율적이고 정확한 결과를 보장합니다.

Linux의 정규 표현식으로 고급`Grep '사용

Linux에서 정규 표현식과 함께 grep 사용하는 것은 간단한 텍스트 검색을 훨씬 뛰어 넘습니다. Basic grep 사용법은 문자 문자열을 찾는 데 도움이되지만 정규식 (Regex)과 결합하는 것은 로그 분석, 코드 검토 및 시스템 관리에 필수적인 강력한 패턴 매칭 기능을 잠금 해제합니다. Advanced grep 기능을 효과적으로 활용하는 방법은 다음과 같습니다.

Linux의 정규 표현식으로 고급`Grep '사용

1. 기본 대 확장 정규 표현식 이해

grep 두 가지 주요 정규식 풍미의 기본 정규 표현식 (BRE)확장 정규 표현식 (ERE)을 지원합니다.

기본적으로 grep 특수 문자와 같은 BRE를 사용합니다 , ? , | , () 탈출하지 않는 한 리터럴로 취급됩니다. ERE를 사용하고 백 슬래시 혼란을 피하려면 -E 플래그 (또는 egrep )를 사용하십시오.

Linux의 정규 표현식으로 고급`Grep '사용
 # "오류"와 하나 이상의 숫자와 일치
grep "error [0-9] \"logfile.txt # bre : 탈출해야합니다
grep -e "error [0-9]"logfile.txt # ere : 직접 작동합니다

깨끗하고 더 읽기 쉬운 패턴, 특히 교대 또는 그룹화를 처리 할 때 -E 사용하십시오.


2. Regex와 일치하는 실용적인 패턴

단어 경계를 일치시킵니다

\b 사용하여 전체 단어에만 일치합니다. 이것은 부분 일치를 피합니다.

Linux의 정규 표현식으로 고급`Grep '사용
 grep &#39;\ broot \ b&#39; /etc /passwd

이것은 "rootuser"또는 "broadcast"가 아닌 정확한 단어 "root"를 포함하는 선을 찾습니다.

참고 : Word 경계 ( \b )는 대부분의 grep 버전에서 지원되지만 엄격한 Posix 준수를 위해 [[:<:]][[:>:]] 사용합니다.

 grep &#39;[[: <:]] root [[:> :]]&#39; /etc /passwd

특정 패턴으로 시작/종료 라인을 일치시킵니다

^$ :로 패턴을 정박하십시오.

 # "경고"로 시작하는 라인
grep &#39;^경고&#39;syslog.log

# ".conf"로 끝나는 줄
grep &#39;\ .conf $&#39;config_list.txt

# blank line (아무것도없는 시작과 끝)
grep &#39;^$&#39;file.txt

여러 패턴과 일치 (교대)

사용 | 하나의 패턴이나 다른 패턴과 일치하는 것 :

 grep -e &#39;치명적 | 오류 | 중요&#39;시스템

이것은 세 가지 키워드 중 하나를 포함하는 모든 줄을 찾습니다.

대안을 그룹화 할 수 있습니다.

 grep -e &#39;(경고 | 통지)&#39;/var/log/messages

3. 캐릭터 클래스 및 정량 자

사전 정의 된 문자 클래스를 사용하십시오

[0-9a-zA-Z] 대신 명확성과 이식성을 위해 POSIX 클래스를 사용하십시오.

  • [[:digit:]] → 숫자
  • [[:alpha:]] → 문자
  • [[:alnum:]] → 문자와 숫자
  • [[:space:]] → whitespace
  • [[:punct:]] → 구두점

예:

 # 글자와 공간 만있는 줄을 찾으십시오
grep &#39;^[: alpha :] [: space :]]*$&#39;notes.txt

반복을위한 정량 자

패턴이 몇 번 나타나는 지 제어 :

  • * → 0 이상
  • → 1 이상 ( -E 와 함께 사용)
  • ? → 0 또는 1 ( -E 포함)
  • {n,m} → N과 M 사이

예 :

 # IP 주소 Octet (1-3 자리)
grep -e &#39;[0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3}&#39;access.log

# 전화 번호 : 3 자리, 대시, 4 자리
grep -e &#39;[0-9] {3}-[0-9] {4}&#39;contacts.txt

: IPS ( \. )의 탈출 점 (\.).


4. REGEX 사용을 향상시키는 고급 옵션

  • -i 사례에 민감한 검색

     grep -i &#39;error&#39;logfile.txt
  • -v -인버트 매치 (일치 하지 않음 )

     grep -v &#39;^\ s*$&#39;file.txt # 빈 줄 제외
  • -n -선 번호를 보여줍니다

     grep -n &#39;timeout&#39;script.sh
  • -r -디렉토리를 통한 재귀 검색

     grep -re &#39;user_id = [0-9]&#39;/var/www/app/
  • -o -일치하는 부분 만 표시 (추출에 유용)

     echo "id : ABC123, 상태 : OK"| grep -o &#39;[a-z0-9] \ {6 \}&#39;
    # 출력 : ABC123
  • -P -Perl-Compative Regex 사용 (사용 가능한 경우)

     grep -p &#39;\ d {4}-\ d {2}-\ d {2}&#39;file.log # \ d 숫자의 속도

    참고 : -P 는 POSIX가 아니라 Linux에서 널리 지원됩니다.


5. 일반적인 함정과 팁

  • 쉘 확장을 방지하기 위해 항상 패턴을 인용하십시오.

     grep &#39;[0-9]&#39;파일 # 양호합니다
    grep [0-9] 파일 # bad : 쉘이 파일 이름으로 [0-9]를 확장 할 수 있습니다.
  • 복잡한 패턴을 단계별로 테스트하십시오 : 간단한 시작한 다음 앵커, 그룹 또는 정량기를 추가하십시오.

  • 사용 --color=always 성냥을 강조하기 위해 :

     grep -color = 항상 -e &#39;\ b (오류 | 실패) \ b&#39;log.txt
  • 다른 도구와 결합하십시오.

     # 고유 한 오류 코드 계산
    grep -oe &#39;오류 [0-9]&#39;app.log | 정렬 | UNIQ -C

    기본적으로 Regex와 grep 마스터하는 것은 표현 패턴을 올바른 옵션과 결합하는 방법을 아는 것을 의미합니다. 로그를 필터링하든 구성 파일을 파싱하든 이러한 기술은 텍스트 처리가 더 빠르고 정확하게 만듭니다. 최신 Regex 스타일에 -E 사용하고 패턴을 인용하고 필요할 때 고정하십시오.

    위 내용은 Linux의 정규 표현식으로 고급`Grep '사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Go에서 정규식을 사용하여 타임스탬프를 일치시키는 방법은 무엇입니까? Go에서 정규식을 사용하여 타임스탬프를 일치시키는 방법은 무엇입니까? Jun 02, 2024 am 09:00 AM

Go에서는 정규식을 사용하여 타임스탬프를 일치시킬 수 있습니다. ISO8601 타임스탬프를 일치시키는 데 사용되는 것과 같은 정규식 문자열을 컴파일합니다. ^\d{4}-\d{2}-\d{2}T \d{ 2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ . regexp.MatchString 함수를 사용하여 문자열이 정규식과 일치하는지 확인합니다.

PHP 정규식 유효성 검사: 숫자 형식 감지 PHP 정규식 유효성 검사: 숫자 형식 감지 Mar 21, 2024 am 09:45 AM

PHP 정규식 확인: 숫자 형식 감지 PHP 프로그램을 작성할 때 사용자가 입력한 데이터를 확인해야 하는 경우가 종종 있습니다. 일반적인 확인 중 하나는 데이터가 지정된 숫자 형식을 준수하는지 확인하는 것입니다. PHP에서는 정규식을 사용하여 이러한 종류의 유효성 검사를 수행할 수 있습니다. 이 기사에서는 PHP 정규식을 사용하여 숫자 형식을 확인하고 구체적인 코드 예제를 제공하는 방법을 소개합니다. 먼저 일반적인 숫자 형식 유효성 검사 요구 사항을 살펴보겠습니다. 정수: 0~9의 숫자만 포함하고 더하기 또는 빼기 기호로 시작할 수 있으며 소수점을 포함하지 않습니다. 부동 소수점

정규식을 사용하여 Golang에서 이메일 주소를 확인하는 방법은 무엇입니까? 정규식을 사용하여 Golang에서 이메일 주소를 확인하는 방법은 무엇입니까? May 31, 2024 pm 01:04 PM

정규식을 사용하여 Golang에서 이메일 주소를 확인하려면 다음 단계를 따르세요. regexp.MustCompile을 사용하여 유효한 이메일 주소 형식과 일치하는 정규식 패턴을 만듭니다. MatchString 함수를 사용하여 문자열이 패턴과 일치하는지 확인합니다. 이 패턴은 다음을 포함하여 대부분의 유효한 이메일 주소 형식을 다룹니다. 로컬 사용자 이름에는 문자, 숫자 및 특수 문자가 포함될 수 있습니다: !.#$%&'*+/=?^_{|}~-`도메인 이름에는 최소한 다음이 포함되어야 합니다. 문자 1개 뒤에 문자, 숫자 또는 하이픈이 옵니다. 최상위 도메인(TLD)의 길이는 63자를 초과할 수 없습니다.

한자 필터링: PHP 정규식 연습 한자 필터링: PHP 정규식 연습 Mar 24, 2024 pm 04:48 PM

PHP는 널리 사용되는 프로그래밍 언어이며 특히 웹 개발 분야에서 널리 사용됩니다. 웹 개발 과정에서 우리는 사용자가 입력한 텍스트를 필터링하고 검증해야 하는 경우가 종종 있는데, 그 중 문자 필터링은 매우 중요한 작업입니다. 이 기사에서는 PHP에서 정규식을 사용하여 중국어 문자 필터링을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 우선 한자의 유니코드 범위는 u4e00부터 u9fa5까지, 즉 모든 한자가 이 범위에 속한다는 점을 명확히 할 필요가 있다.

Go에서 정규식을 사용하여 비밀번호를 확인하는 방법은 무엇입니까? Go에서 정규식을 사용하여 비밀번호를 확인하는 방법은 무엇입니까? Jun 02, 2024 pm 07:31 PM

Go에서 정규식을 사용하여 비밀번호를 확인하는 방법은 다음과 같습니다. 최소 비밀번호 요구 사항(소문자, 대문자, 숫자, 특수 문자를 포함하여 8자 이상)을 충족하는 정규식 패턴을 정의합니다. regexp 패키지의 MustCompile 함수를 사용하여 정규식 패턴을 컴파일합니다. MatchString 메서드를 사용하여 입력 문자열이 정규식 패턴과 일치하는지 테스트합니다.

Golang 정규식 사용 가이드 Golang 정규식 사용 가이드 Apr 08, 2024 pm 02:15 PM

Go의 정규식은 강력한 문자열 처리 도구를 제공합니다. 정규식 작업에는 regexp 패키지를 사용하세요. 정규식 구문을 사용하여 문자열을 일치시키고 조작합니다. 문자 클래스, 반복 문자, 그룹화, 앵커 및 경계를 일치시킵니다. MatchString으로 문자열을 일치시키고, FindStringSubmatch로 일치 항목을 추출하고, 문자열을 바꾸기AllString으로 바꿉니다. 응용 프로그램 시나리오에는 이메일 주소 확인, HTML 링크 추출 등이 포함됩니다.

PHP는 다른 문자열에 있는 문자열의 시작 위치부터 끝 ​​위치까지 문자열을 반환합니다. PHP는 다른 문자열에 있는 문자열의 시작 위치부터 끝 ​​위치까지 문자열을 반환합니다. Mar 21, 2024 am 10:31 AM

이 글은 PHP가 다른 문자열에서 문자열의 시작 위치부터 끝 ​​위치까지 문자열을 반환하는 방법을 자세히 설명합니다. 편집자는 이것이 꽤 실용적이라고 생각하므로 참고용으로 공유하겠습니다. 이 기사에서 뭔가를 얻을 수 있습니다. PHP에서 substr() 함수를 사용하여 문자열에서 부분 문자열을 추출합니다. substr() 함수는 문자열에서 지정된 범위 내의 문자를 추출할 수 있습니다. 구문은 다음과 같습니다. substr(string,start,length) 여기서: string: 하위 문자열을 추출할 원래 문자열입니다. start: 하위 문자열의 시작 위치에 대한 인덱스입니다(0부터 시작). 길이(선택 사항): 하위 문자열의 길이입니다. 지정하지 않은 경우

Golang에서 정규식으로 URL을 감지하는 방법은 무엇입니까? Golang에서 정규식으로 URL을 감지하는 방법은 무엇입니까? May 31, 2024 am 10:32 AM

정규식을 사용하여 Golang에서 URL을 탐지하는 단계는 다음과 같습니다. regexp.MustCompile(pattern)을 사용하여 정규식 패턴을 컴파일합니다. 패턴은 프로토콜, 호스트 이름, 포트(선택 사항), 경로(선택 사항) 및 쿼리 매개 변수(선택 사항)와 일치해야 합니다. URL이 패턴과 일치하는지 확인하려면 regexp.MatchString(pattern,url)을 사용하세요.

See all articles