zoukankan      html  css  js  c++  java
  • glob 模式的 Linux Shell 通配符介绍

    问题

    今天遇到一个麻烦,如何在编译器中设置 "files.exclude",排除掉某些我们不愿意看的文件呢?查阅资料得知这种字段的填写就需要用到 glob 模式的通配符。

    概念

    glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档)。glob 是一种特殊的模式匹配,最常见的是通配符拓展,也可以将 glob 模式设为精简了的正则表达式,在最新的 CentOS 7 中已经删除了 glob 的相关描述文档,删除的原因由于 glob 已经整合到了 shell 之中,然后就有了 shell 通配符。

    笔者在查阅资料的时候发现关于 glob 模式或者 globbing 的相关描述以及文档是少之又少,所以特地在这里整理一下并重新写一写使用方法

    语法

    *   匹配任意长度任意字符
    ?   匹配任意单个字符
    [list]  匹配指定范围内(list)任意单个字符,也可以是单个字符组成的集合
    [^list] 匹配指定范围外的任意单个字符或字符集合
    [!list] 同[^list]
    {str1,str2,...} 匹配 srt1 或者 srt2 或者更多字符串,也可以是集合
    

    专用字符集

    [:alnum:]	任意数字或者字母
    [:alpha:]	任意字母
    [:space:]	空格
    [:lower:]	小写字母
    [:digit:]	任意数字
    [:upper:]	任意大写字母
    [:cntrl:]	控制符
    [:graph:]	图形
    [:print:]	可打印字符
    [:punct:]	标点符号
    [:xdigit:]	十六进制数
    [:blank:]	空白字符(未验证)
    

    例子

    匹配当前文件夹下的 node_modules 下的所有文件

    "./node_modules/*": true
    

    拿 vscode 设置中的 "files.exclude" 举例,如果我希望不显示 node_modules 下的公司内部的包 @souche-f2e 和 @souche-vue ,也显示 vue 全家桶,其他包全都隐藏,则:

    "files.exclude": {
        "./node_modules/[^@v]*": true
    }
    
  • 相关阅读:
    Vi 和 Vim
    The C Programming Language-Chapter 5 Pointers and Arrays
    C# 4.0开始,泛型接口和泛型委托都支持协变和逆变
    数据库中的锁 and java StampedLock ReadWriteLock
    NetCore and ElasticSearch 7.5
    网关项目 ReverseProxy
    异常捕获&打印异常信息
    刷新:重新发现.NET与未来
    2019 中国.NET 开发者峰会正式启动
    .NET开发者必须学习.NET Core
  • 原文地址:https://www.cnblogs.com/everlose/p/12724801.html
Copyright © 2011-2022 走看看