Linux - Shell - 通配符

  1. 概述
    1. 通配符
  2. 背景
    1. 一直分不清 通配符 和 正则
    2. 通配符也是一种简单的 查找手段
      1. 在懒得用正则的时候, 是个好办法
  3. 准备
    1. os
      1. centos7
    2. 目录
      1. /etc
    3. 命令
      1. ls -d
        1. -d
          1. 如果过滤出目录, ls 不会对目录拆包
          2. 如果不跟 正则, 只返回 .

1. 通配符

  1. 概述
    1. 通配符
    2. wildcard
      1. 狂野的卡牌?
  2. 通配符
    1. 描述
      1. 一种字符
        1. 可以在搜索中, 代替其他任意字符
    2. 好处
      1. 提高了搜索的灵活性和效率
  3. 使用场景
    1. ls
    2. find
    3. 其他欢迎补充

2. * 通配符

  1. 概述
      • 通配符
  2. 作用
    1. 匹配 任意类型 的 [0, 正无穷] 个字符
      1. 当然 linux 的路径长度, 是有上限的
  3. 场景1: 匹配 特定后缀 的文件

    # . 在通配符里, 是 普通字符, 不要和 正则 弄混了
    # .conf
    > ls -d *.conf
    # .d
    > ls -d *.d
  4. 场景2: 匹配 特定前缀 的文件

    # sys
    > ls -d sys*

3. ? 通配符

  1. 概述
    1. ? 通配符
  2. 作用
    1. 匹配 任意类型 的 单个字符
  3. 场景: 查找后缀长度固定的内容

    # 后缀长度为 1
    > ls -d *.?

4. [] 通配符

  1. 概述
    1. [] 通配符
  2. 作用
    1. 匹配 [] 内的 单个字符
  3. 场景

    > ls -d [a-z]*
    > ls -d *[a-z]*
    > ls -d *[A-Z]*
    > ls -d *[0-9]*
    > ls -d *[a-Z]*
    > ls -d *[a-f]*
    > ls -d *[a-fxyz]*
    > ls -d *[a-zA-Z0-9]*

5. [!] 通配符

  1. 概述
    1. [!] 通配符
  2. 作用
    1. 反选 单个字符
  3. 场景

    # 不是 小写字母开头 的文件
    > ls -d [!a-z]

5. {}

  1. 概述
    1. {}
    2. 这个好像不算 通配符
      1. 但是很多通配符的地方, 也可以用
  2. 作用
    1. 在多个 str 中选择yige
  3. 场景

    # 查找 sysco 或者 sysct 开头的 目录 或 文件
    > ls -d sys{co,ct}*

6. 其他

  1. 其实还要这些东西, 但是我不确定它们是否属于 通配符, 也不确定怎么用
    1. [:alpha:]
    2. 其他

ps

  1. ref
    1. How to Use Wildcards
    2. Wildcards
    3. Linux篇:通配符的应用
    4. Linux中通配符
  2. 后续
    1. 可能就是把之前整理的 正则, 再 搬出来 了吧

猜你喜欢

转载自www.cnblogs.com/xy14/p/12066952.html