glob_match

glob match总结(bash下)

  • *匹配任意数量的非/字符
  • ? 仅匹配一个非/字符
  • **匹配任意数量的非/字符,而且当它独立构成匹配模式中的一段时,也可以匹配/,在bash下要开启globstar,shopt -s globstar
  • [...]匹配[]之间的字符,存在范围匹配时,需要在bash下需开启globasciiranges,保证大小写匹配的正常;[^…] 或 [!…]匹配不包括在[]内的字符;可以通过[:class:]使用POSIX标准的匹配关键词:alnumalphaasciiblankcntrldigitgraphlowerprintpunctspaceupperwordxdigitword 匹配字符、数字和_
  • 多模式匹配及反选
    • ?(pattern|pattern|…):匹配0个或1个pattern
    • *(pattern|pattern|…):匹配0个或以上的pattern
    • +(pattern|pattern|…):匹配1个或以上pattern
    • @(pattern|pattern|…):匹配其中1个pattern,测试效果和+(pattern|pattern|...)相似(需进一步研究区别
    • !(pattern|pattern|…):不匹配任一pattern

参考:man bash下的Pattern Matching部分

分享到