아래 글로벌에서 내가 뭘 잘못하고 있니? 내가 읽은 바에 따르면 작동해야 할 것 같습니다.수동.
ㅏ'? '(대괄호 사이 아님)은 단일 문자와 일치합니다.
$ touch file.txt file.text
$ ls file.*
file.text file.txt
$ ls file.te?xt
ls: cannot access 'file.te?xt': No such file or directory
$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-pc-linux-gnu)
답변1
?
단일 문자 와 일치합니다 ( .
정규 표현식과 마찬가지로). 패턴과 일치하는 파일이 없으므로 file.te?xt
패턴이 확장되지 않은 상태로 유지됩니다.
"이전 표현식 중 0개 또는 하나"를 의미하는 정규 표현식처럼 작동할 것으로 예상할 수 있습니다. 불행하게도 에는 그러한 와일드카드가 없습니다 bash
.
... extglob
쉘 옵션을 활성화하지 않는 한:
shopt -s extglob
그러면 패턴은 ?(list)
의 패턴 중 0개 또는 하나와 일치합니다 list
.
$ shopt -s extglob
$ ls file.t?(e)xt
file.text file.txt