Glob
Glob is like regular expressions but for POSIX systems and is available in most shells.
Syntax
| Symbol | Description | Example |
|---|---|---|
* |
Matches any number of any characters including none | *abc* matches abc, 1abc2, xyzabc123 |
? |
Matches any single character | ?abc matches 1abc, not abc |
[abc] |
Matches any character within the bracket | [123]abc matches 1abc, not xabc or abc |
[a-z] |
Matches any character within range (locale dependent) | [0-9]abc matches 8abc, not xabc or abc |
Extended Syntax
These are not standard, but are usually available for any given shell. The bash option is in parentheses. More than one pattern can exist within a set of parentheses for extglob, as long as they are separated by a pipe (|).
| Symbol | Description | Example |
|---|---|---|
** (globstar) |
Matches any number of any directories including none | folder/**/*.txt matches folder/abc.txt, folder/subfolder/abc.txt, not /abc.txt |
*(pattern) (extglob) |
Matches zero or more occurrences of a given pattern | a*(b\|c)d matchesabcd, ad, abbd |
?(pattern) (extglob) |
Matches zero or one occurrence of a given pattern | a?(b\|c)d matchesad, abd, acd |
+(pattern) (extglob) |
Matches one or more occurrence of a given pattern | a+(b\|c)d matchesabd, abcccccd, not ad |
@(pattern) (extglob) |
Matches one occurrence of a given pattern | a@(b\|c)d matchesabd, acd, not abcd |
!(pattern) (extglob) |
Matches anything except the given pattern | a!(b\|c)d matchesaed, abcccccd, not ad |
References
- glob - Greg's Wiki
- [glob (programming) - Wikipedia](<https://en.wikipedia.org/wiki/Glob_(programming)
- Glob tester - tool for testing glob pattern
Incoming Links
Last modified: 202401040446