bash는 어떤 정규식 엔진 유형을 사용합니까?

RegEx Buddy 를 사용하여 정규 표현식을 프로토 타이핑하고 디버깅합니다. RegEx Buddy를 사용하면 다양한 정규식 엔진 유형 (.NET, Java, Perl, GNU BRE, GNU ERE, POSIX, BRE, POSIX ERE 등) 중에서 선택할 수 있습니다.

정규식 엔진의 기능 bash 사용 (예 : ifcase 문)? 저는 Centos 5.5 32 비트 및 bash 3.2.25 (1)를 실행하고 있습니다.

[kevin@mon01 scratch]$ bash --version GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. 

GNU BRE 또는 GNU ERE가 될 것 같습니다.

Answer

bash (및 일반적으로 POSIX 셸)는 case 문이 아니라 glob 패턴 입니다.

연산자; 자세한 내용은 http://mywiki.wooledge.org/BashGuide/Patterns ,
에서 bash는 확장 정규식 (ERE)을 사용합니다.

댓글

  • 감사합니다. 두 번째 링크는 GNU ERE라고 생각하는 ERE를 언급합니다.

Answer

Bash는 ifcase 문에있는 위와 같은 종류의 정규 표현식입니다.

대신 쉘 glob 패턴을 사용합니다. , 이것은 어떤 종류의 정규식보다 덜 강력합니다. 상대적으로 새로운 버전의 bash는 또한 (줄) 앵커없이 정규식과 표현 적으로 동일하지만 부정 된 용어를 포함하지만 다른 구문과는 다른 확장 된 glob 패턴을 사용할 수 있습니다. 위에서 언급 한 정규 표현식 유형입니다.

그러나 확장 된 쉘 glob은 쉘 스크립트에서 또는 대화식으로 shopt -s extglob와 함께 사용하기 전에 활성화되어야합니다.

단일 예외적 인 위치, 즉 [[ ]] 조건부 명령 내에서 =~ 이진 관계를 통해 왼쪽의 문자열을 확인할 수 있습니다. 확장 된 정규병에 대한 측면 오른쪽에 ERE 표현식.

Answer

링크 된 Bash 가이드에 따르면 Bash (버전 3.0 이상)는 다음을 사용합니다. “ 확장 정규식 (ERE) 방언.”

해당 방언에 대한 자세한 정보를 찾을 수 있습니다. 여기 .

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다