RegEx Buddy 를 사용하여 정규 표현식을 프로토 타이핑하고 디버깅합니다. RegEx Buddy를 사용하면 다양한 정규식 엔진 유형 (.NET, Java, Perl, GNU BRE, GNU ERE, POSIX, BRE, POSIX ERE 등) 중에서 선택할 수 있습니다.
정규식 엔진의 기능 bash 사용 (예 : if
및 case
문)? 저는 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는 if
및 case
문에있는 위와 같은 종류의 정규 표현식입니다.
대신 쉘 glob 패턴을 사용합니다. , 이것은 어떤 종류의 정규식보다 덜 강력합니다. 상대적으로 새로운 버전의 bash는 또한 (줄) 앵커없이 정규식과 표현 적으로 동일하지만 부정 된 용어를 포함하지만 다른 구문과는 다른 확장 된 glob 패턴을 사용할 수 있습니다. 위에서 언급 한 정규 표현식 유형입니다.
그러나 확장 된 쉘 glob은 쉘 스크립트에서 또는 대화식으로 shopt -s extglob
와 함께 사용하기 전에 활성화되어야합니다.
단일 예외적 인 위치, 즉 [[ ]]
조건부 명령 내에서 =~
이진 관계를 통해 왼쪽의 문자열을 확인할 수 있습니다. 확장 된 정규병에 대한 측면 오른쪽에 ERE 표현식.
Answer
링크 된 Bash 가이드에 따르면 Bash (버전 3.0 이상)는 다음을 사용합니다. “ 확장 정규식 (ERE) 방언.”
해당 방언에 대한 자세한 정보를 찾을 수 있습니다. 여기 .