1
Watch
70
Star
1
Fork
0
Issue

A cheat sheet for minimatch

motemen
motemen
pushedAt 3 years ago

motemen/minimatch-cheat-sheet

minimatch-cheat-sheet

A cheat sheet for minimatch.

Basic

  • * matches any string, not including than path separator
  • ** matches any string, including path separators
  • ? matches single character other than path separator
Pattern Matches Does not match
xxx.* xxx.yyy, xxx.y.z abcxxx.yyy, xxx.y/z
xxx/*/yyy xxx/abc/yyy xxx/yyy, xxx/abc/def/yyy, xxx/.abc/yyy
xxx/**/yyy xxx/abc/yyy, xxx/yyy, xxx/abc/def/yyy xxx/.abc/yyy
xxx/**yyy xxx/yyy xxx/abc/yyy, xxx/abc/def/yyy, xxx/.abc/yyy
x?y xAy xy, xABy, x/y

Braces

  • {foo,bar} matches "foo" and "bar"
  • {1..3} matches "1", "2" and "3"
Pattern Matches Does not match
{foo,bar} foo, bar baz
{x,y/*}/z x/z, y/a/z y/z
foo{1..3} foo1, foo2, foo3 foo, foo0

Negation

  • !-prefixed patterns invert match
Pattern Matches Does not match
!abc a, xyz abc

Comments

  • #-prefixed patterns are treated as comments and match nothing
  • \# to escape
Pattern Matches Does not match
#abc abc, #abc
\#abc #abc abc

Extglob

  • +(pattern) matches one or more repetition of pattern (like /(pattern)+/)
  • *(pattern) matches zero or more repetition of pattern (like /(pattern)*/)
  • ?(pattern) matches zero or one repetition of pattern (like /(pattern)?/)
  • @(pattern) matches pattern (like /(pattern)/)
  • !(pattern) matches anything except the pattern (like /(?!pattern)/)
  • pattern can be joined by | (like /(foo|bar)/)
Pattern Matches Does not match
a+(xy) axy, axyxy a
a*(xy) a, axy, axyxy
[email protected](xy) axy a, axyxy
a!(xy) ax axy, axyz
a+(x|y*z) axx, ayzxyzxx, axyAAAz axy, a
ucloud ads