zoukankan      html  css  js  c++  java
  • Shell glob

    在Linux中,glob是用来匹配路径名的通配符,glob主要包含以下4种:

    Wildcard Matching

    * 匹配0个或者多个字符,比如d*,可以匹配d, d1, dd1

    ?匹配单个字符,比如d?,只匹配dd,不匹配d

    Character classes

    包含在[]中的字符只会被匹配一个,并且[]里面不可以为空。比如[abc]匹配a,b,c中其中一个字符。需要注意的是[]里面可以包含[,],!,?,*,这些特殊字符,因此[[!*?]]匹配[,!,\,*,?中的一个字符

    Range

    两个字符中间用'-'连接表示range,比如[0-9]等同于[0123456789]。需要注意的是,如果-出现在开头或者结尾,并不表示range,比如[-a]或者[a-]匹配-,a字符中的一个。

    Complementation

    [!abc]表示匹配a,b,c之外的一个字符。

    对于glob有三点需要注意:

    1 上面任何形式glob都不匹配/字符,因此假设有如下目录结构:

                                 D

                                 |

                 -----------------------

               |                        |

             a.txt                      DD

                                        |

                                       a.txt

    那么在D目录下运行ls *.txt只会列出D目录下的a.txt,而不会列出DD/a.txt

    2 任何以.开头命名的文件都必须在glob中显示指定才能匹配,比如有一个文件.abc,那么rm *匹配不到.abc,只能使用rm .*

    3 glob与正则表达式不一样,glog只匹配路径名,而不是匹配文件的内容,并且glob与正则表达式虽然有相同的通配符,但是意义却不一样,比如a*k在glob中可以匹配ak,abk,abck,但在正则表示中表示匹配ak,aak,aaak。

    参考:

    man 7 glob

  • 相关阅读:
    mybatis批量处理sql
    jdbc连接数据库使用sid和service_name的区别
    js 监听浏览器刷新还是关闭事件
    websocket
    hutool java工具架包功能介绍
    SpringMvc+ajax 实现json格式数据传递
    springMVC form表单提交多个对象集合--使用ajax提交--前台json格式数据封装方法
    linux C之判断文件或目录是否存在 access函数
    Linux C -> symlink 和 readlink -> 符号链接
    linux c开发: 在程序退出时进行处理
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/5313721.html
Copyright © 2011-2022 走看看