• 文件名通配符


    提示:在Windows中通常将一些正则表达式的基本字符称为通配符,而在Linux操作系统中人们则将这些基本字符称为元字符。使用多个元字符组成的查找表达式称为匹配模式,使用匹配模式查找的过程称为(模式)匹配。

    1、单字符匹配元字符“?”

    元字符“?”表示匹配文件名中任意一个字符,连续使用多个元字符“?”可以表示多个任意字符。

    (1)例如要查看有两个字符且第一个字母是a的文件:

    [root@localhost zhu]# ls -l a?
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ab
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ac
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ad

    (2)也可以使用多个“?”,例如要查看由字母a和任意两个字符组成的文件:

    [root@localhost zhu]# ls -l a??
    -rw-r--r-- 1 root root 0 Dec  6 09:49 abc
    -rw-r--r-- 1 root root 0 Dec  6 09:49 acd
    -rw-r--r-- 1 root root 0 Dec  6 09:49 add

    (3)查看所有由4字符组成且第3个字符是c的文件:

    [root@localhost zhu]# ls -l ??c?
    -rw-r--r-- 1 root root 0 Dec  6 09:47 abcd

    2、多字符匹配元字符“*”

    元字符“*”表示匹配文件名中的任意字符串。匹配的字符串长度可以是0-n。

    (1)查看以字母c结尾的文件:

    [root@localhost zhu]# ls -l *c
    -rw-r--r-- 1 root root 0 Dec  6 09:49 abc
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ac

    (2)查看所有以a开头并以c结尾的文件:

    [root@localhost zhu]# ls -l a*c
    -rw-r--r-- 1 root root 0 Dec  6 09:49 abc
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ac

    (3)元字符混合使用:

    [root@localhost zhu]# ls -l *c?
    -rw-r--r-- 1 root root 0 Dec  6 09:47 abcd
    -rw-r--r-- 1 root root 0 Dec  6 09:49 acd

    (4)查看第3个字符为c的所有文件:

    [root@localhost zhu]# ls -l ??c*
    -rw-r--r-- 1 root root    0 Dec  6 09:49 abc
    -rw-r--r-- 1 root root    0 Dec  6 09:47 abcd

    3、字符范围匹配符“[]”

    范围匹配符“[]”通常用于匹配一个字符范围,其表现形式可以是减号“-”,表示字母或数字的范围;也可以是几个字符的组合,表示这几个字符中的任一个。

    (1)范围匹配符中出现几个字符的组合,如下,表示以a开头或者以b开头或者以c开头或者以d开头或者以e开头的所有文件:

    [root@localhost zhu]# ls -l [abcde]*
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ab
    -rw-r--r-- 1 root root 0 Dec  6 09:49 abc
    -rw-r--r-- 1 root root 0 Dec  6 09:47 abcd
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ac
    -rw-r--r-- 1 root root 0 Dec  6 09:49 acd
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ad
    -rw-r--r-- 1 root root 0 Dec  6 09:49 add

    (2)查看以a开头并且倒数第二个字符是cde中任一个的所有文件:

    [root@localhost zhu]# ls -l a*[cde]?
    -rw-r--r-- 1 root root 0 Dec  6 09:47 abcd
    -rw-r--r-- 1 root root 0 Dec  6 09:49 acd
    -rw-r--r-- 1 root root 0 Dec  6 09:49 add

    (3)使用符号“-”可以匹配字母或数字范围中的任意一个:

    [root@localhost zhu]# ls -l *[0-9]*
    -rw-r--r-- 1 root root 0 Dec  6 10:06 a0_test
    -rw-r--r-- 1 root root 0 Dec  6 10:06 zhu3_test

    (4)查看所有由两个字符组成,且第二个字符是字母的文件:

    [root@localhost zhu]# ls -l ?[a-Z]
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ab
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ac
    -rw-r--r-- 1 root root 0 Dec  6 09:46 ad
    -rw-r--r-- 1 root root 0 Dec  6 10:08 eA
    -rw-r--r-- 1 root root 0 Dec  6 10:08 tX
    -rw-r--r-- 1 root root 0 Dec  6 10:08 yZ

    上面的命令中,[a-Z]表示所有字母,也可以用[a-zA-Z]表示所有字母。

    4、排除范围匹配符“[!]”或者“[^]"

    排除范围匹配符“[!]”表示不匹配符号内出现的字符组合或字母数字范围。使用时,感叹号!只能放在要排除的字符串首。

    (1)查看只有两个字符并以数字开头且第二个字符不是数字的文件:

    [root@localhost zhu]# ls -l [0-9][!0-9]
    -rw-r--r-- 1 root root 0 Dec  6 10:15 3d

    (2)查看只有两个字符且两个字符都不是字母的文件:

    [root@localhost zhu]# ls -l [!a-Z][!a-Z]
    -rw-r--r-- 1 root root 0 Dec  6 10:16 %3
    -rw-r--r-- 1 root root 0 Dec  6 10:16 34
  • 相关阅读:
    累加和校验算法(CheckSum算法)
    云锵投资 2021 年 09 月简报
    云锵投资 2021 年 08 月简报
    断言与忽略断言
    出现 undefined reference to `cv::String::deallocate()'的解决方法
    about of string
    esp32: A stack overflow in task spam_task has been detected.
    IDEA部署Tomcat报错:No artifacts marked for deployment
    在safari浏览器上使用php导出文件失败
    laravel中使用vue热加载时 Cannot read property 'call' of undefined BUG解决方案
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3460891.html
Copyright © 2020-2023  润新知