Bash에서 정규식을 통해 패턴 일치를 수행하는 위치는 어디입니까?

Bash에서 정규식을 통해 패턴 일치를 수행하는 위치는 어디입니까?

패턴 일치는 Bash의 여러 위치에서 사용됩니다.

  1. Bash의 패턴 일치는 정규식이나 와일드카드(파일 이름 확장과 동일한 스타일)를 사용하여 수행됩니까?

  2. [[..]]Bash에서 패턴 일치는 with 연산자 에 대해서만 정규식으로 수행됩니까 =~? 다른 곳에서는 사용할 수 없나요?

    정규식을 통해 패턴 일치를 수행할 수 있는 다른 곳이 있나요?

답변1

에서 man bash:

== 및 != 연산자를 사용할 때 연산자 오른쪽의 문자열은 패턴으로 처리되며 마치 extglob 셸 옵션이 활성화된 것처럼 패턴 일치에 설명된 규칙에 따라 일치됩니다.

을 위한 =~:

== 및 !=와 우선순위가 동일한 추가 이항 연산자 =~를 사용할 수도 있습니다. 사용되면 연산자 오른쪽에 있는 문자열은 확장 정규식으로 처리되고 그에 따라 일치됩니다(regex(3)에서와 같이).

따라서 regex(3)다음과 같은 경우에만 패턴을 일치시키는 데 사용됩니다.=~


그렇지 않으면 다음과 같이 완료하십시오.

경로명 확장:

     단어 분할 후 bash는 -f 옵션이 설정되지 않은 한 각 단어에서 *, ? 및 [ 문자를 검색합니다. 이러한 문자 중 하나가 발생하면 해당 단어는 패턴으로 처리되고 패턴과 일치하는 파일 이름의 알파벳순 목록으로 대체됩니다(아래 패턴 일치 참조).

패턴 매칭

     아래 설명된 특수 패턴 문자를 제외하고 패턴에 나타나는 모든 문자는 자체적으로 일치합니다. NUL 문자는 패턴에 나타날 수 없습니다. 백슬래시는 다음 문자를 이스케이프합니다. 이스케이프된 백슬래시는 일치 시 삭제됩니다. 특수 패턴 문자를 문자 그대로 일치시키려면 따옴표로 묶어야 합니다.

또한 방문외부 전역 변수여러 패턴 일치 연산자를 확장합니다.

관련 정보