Linux 정규식 튜토리얼: Grep Regex 예
Linux 정규식이란 무엇입니까?
리눅스 정규 표현식 데이터 검색과 복잡한 패턴 매칭에 도움이 되는 특수 문자입니다. 정규 표현식은 'regexp' 또는 'regex'로 줄여서 부릅니다. grep, bash, rename, sed 등과 같은 많은 Linux 프로그램에서 사용됩니다.
정규식의 유형
이해를 돕기 위해 다양한 유형의 Regex를 하나씩 배워보겠습니다.
LINK 비디오에 접근할 수 없는 경우
기본 정규식
정규식과 함께 일반적으로 사용되는 명령 중 일부는 tr, sed, vi 및 GREP. 아래 목록은 기본 Regex 중 일부입니다.
상징 | Descript이온 |
---|---|
. | 모든 문자를 대체합니다. |
^ | 문자열의 시작과 일치 |
$ | 문자열의 끝과 일치 |
* | 앞의 문자와 XNUMX번 이상 일치합니다. |
\ | 특수문자를 표현 |
() | 그룹 정규식 |
? | 정확히 한 문자와 일치합니다. |
예를 봅시다.
cat 샘플을 실행하여 기존 파일의 내용 보기
문자 'a'가 포함된 콘텐츠를 검색합니다.
'^'는 문자열의 시작과 일치합니다. 다음으로 시작하는 콘텐츠를 검색해 보겠습니다.
문자로 시작하는 줄만 필터링됩니다. 시작 부분에 문자 'a'가 포함되지 않은 줄은 무시됩니다.
또 다른 예를 살펴보겠습니다.
다음을 사용하여 t로 끝나는 줄만 선택합니다. $
간격 정규식
이러한 표현식은 문자열에서 문자가 나타나는 횟수를 알려줍니다. 그들은
표현 | 상품 설명 |
---|---|
{NS} | 'n'번 나타나는 앞의 문자와 정확히 일치합니다. |
{n,m} | 'n'번 나타나는 앞의 문자와 일치하지만 m보다 크지는 않습니다. |
{N, } | 앞의 문자가 'n'회 이상 나타나는 경우에만 일치합니다. |
예:
문자 'p'가 포함된 모든 줄을 필터링합니다.
우리는 문자 'p'가 문자열에서 정확히 2번 차례로 나타나는지 확인하고 싶습니다. 이에 대한 구문은 다음과 같습니다.
cat sample | grep -E p\{2}
참고: 이러한 정규식에는 -E를 추가해야 합니다.
확장 정규식
이러한 정규 표현식에는 둘 이상의 표현식 조합이 포함됩니다. 그 중 일부는 다음과 같습니다.
표현 | 상품 설명 |
---|---|
\+ | 이전 문자의 하나 이상의 발생과 일치합니다. |
\? | 이전 문자의 XNUMX개 또는 XNUMX개 항목과 일치합니다. |
예:
모든 문자 't' 검색
문자 'a'가 문자 ''보다 앞서는 행을 필터링한다고 가정합니다.
우리는 다음과 같은 명령을 사용할 수 있습니다.
cat sample|grep "a\+t"
버팀대 확장
중괄호 확장 구문은 중괄호 "{}" 안에 있는 항목의 순서 또는 쉼표로 구분된 목록입니다. 시퀀스의 시작 항목과 끝 항목은 두 개의 마침표(..)로 구분됩니다.
몇 가지 예 :
위의 예에서 echo 명령은 중괄호 확장을 사용하여 문자열을 생성합니다.
슬립폼 공법 선택시 고려사항
- 정규식은 문자열의 패턴을 확인하는 데 사용되는 문자 집합입니다.
- 'regexp' 및 'regex'라고도 합니다.
- 스크립트 작성을 위해서는 정규식을 배우는 것이 중요합니다
- 몇 가지 기본 정규식은 다음과 같습니다.
상징 | Descript이온 |
---|---|
. | 모든 문자를 대체합니다. |
^ | 문자열의 시작과 일치 |
$ | 문자열의 끝과 일치 |
- 일부 확장 정규식은 다음과 같습니다.
표현 | 상품 설명 |
---|---|
\+ |
이전 문자의 하나 이상의 발생과 일치합니다. |
\? | 이전 문자의 XNUMX개 또는 XNUMX개 항목과 일치합니다. |
- 일부 간격 정규식은 다음과 같습니다.
표현 | 상품 설명 |
---|---|
{NS} | 'n'번 나타나는 앞의 문자와 정확히 일치합니다. |
{n,m} | 'n'번 나타나는 앞의 문자와 일치하지만 m보다 크지는 않습니다. |
{N, } | 앞의 문자가 'n'회 이상 나타나는 경우에만 일치합니다. |
- 중괄호 확장은 문자열을 생성하는 데 사용됩니다. 하나에서 여러 문자열을 만드는 데 도움이 됩니다.