Glob (programming)
Globs은 오래전부터 리눅스 운영체제에서 한 번에 여러 개의 파일을 찾을 때 사용해온 패턴 매칭 기법.
문법 종류
-
?
- 문자의 종류와 상관없이 정확히 한 글자와 매칭.
-
**
- 0개 이상의 하위 디렉토리와 매칭.
-
*
- 길이와 상관없이 어떤 문자열과도 부합.
-
{}
- 동시에 여러 문자열을 매칭.
- 예를 들면
**/*.{jpg,JPG}
같이
-
[]
- 문자의 범위를 기준으로 파일 이름을 매칭
- 예를 들어, 이름에 모음 소문자를 포함하는 파일을 검색하고 싶다면
**/*[aeiou]*
이라는 패턴을 사용할 수 있습니다.-
-
기호를 두 문자 사이에 넣으면 두 문자 사이에 있는 모든 문자가 매칭에 사용됩니다. 예를 들어, 대문자로 이름이 시작하는 파일을 검색하고 싶다면**/[A-Z]*
이라는 패턴을 사용할 수 있습니다. -
!
기호를[]
괄호안 첫 번째 글자에 붙이면 그 뒤에 나오는 문자를 매칭에서 제외합니다. 예를 들어,**/[!A-Z]*
패턴은 대문자로 이름이 시작하지 않는 파일만을 검색해줍니다.
-
-
()
-
?
,*
바로 뒤에()
괄호를 사용하면 와일드카드 매칭 시 어느 정도 선택지를 제한해줄 수 있습니다. - 예를 들어,
?(ab|cd)
라는 패턴은 ab 또는 cd 와 매칭되며 빈문자열과도 매칭됩니다. - 반면에
*(ab|cd)
라는 패턴은 ab, abab, cd, cdcd, abcd, cdab, ababcdabcd 등 다양한 문자열과 매칭될 수 있습니다.