• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    linux中通配符种类,通配符的使用方式详解

    发布者: 嘉神 | 发布时间: 2025-6-17 08:24| 查看数: 116| 评论数: 0|帖子模式

    通配符知识部分总结
    </ol>符号释义说明
    1. linux
    复制代码
    表示零个或多个字符下划线’_‘、小数点’.‘、空格’ 也是字符,下同
    1. ### [[:alnum:]]和[a-z0-9A-Z]同义
    2. sh-4.2$ ls [[:alnum:]]
    3. 1  2  A

    4. sh-4.2$ ls [[:upper:]]
    5. A
    复制代码
    一个字符
    1. built-in
    复制代码
    中括号,匹配中括号里面字符中的任意一个(
    1. find
    复制代码
    表示可以匹配a、b和c,
    1. find
    复制代码
    也是使用逗号在中括号中,
    1. find
    复制代码
    等同于
    复制代码
    1. [abc]
    复制代码
    1. [abc]
    复制代码
    , 只能在中括号
    1. built-in
    复制代码
    中使用,表示不匹配中括号中的任意字符(
    1. [[abc]abc]
    复制代码
    表示不匹配a、b、c)
    1. [a,b,c]
    复制代码
    匹配大括号中字符组合中的任何一个(
    1. ^
    复制代码
    表示匹配ab、c、de中的任意一项)
    1. [a,b,c]
    复制代码
    属于通配符么?字符:包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号。来自字符百度词条 <a target="_blank" href="https://www.jb51.net/#fn1" rel="external nofollow"  id="fnref1" >1

      [linux]另外还有,指定匹配数字、字母(大写,小写)、数字或者字母、点或者下划线,等:
    符号释义说明[:digit:]匹配数字仅匹配一个[:lower:]任意小写字母仅匹配一个[:upper:]任意大写字母仅匹配一个[:alpha:]任意字母仅匹配一个[:alnum:]任意一个字母或数字仅匹配一个[:space:]一个空格仅匹配一个[:punct:]表示一个符号可以是键盘上的各种符号,包括但不限于@、#、_、\、(、)、[abc]、&、~、.、### [[:alnum:]]和[a-z0-9A-Z]同义
    sh-4.2$ ls [[:alnum:]]
    1  2  A

    sh-4.2$ ls [[:upper:]]
    A等符号,但是不包括空格、数字、字母注释:
    1. 以上匹配都是匹配一个;
    2.使用使用需要用双中括号,用这样的形式
    1. []
    复制代码
    二、通配符示例、案例

    使用的linux的shebang是sh或者bash,不能使用tcsh或者csh
    使用的文件有:
    1. # 查看文件sh-4.2$ ls linux1        1#2    '1(2'  '1linux2'  12     '1?2'  '1\2'  1_2  1~2  A        A.TXT  A_ '1  2'        '1&2'  '1)2'  1.2    '1=2'  1@2    '1[abc]2'  1ls  2    A.        A.txt  
    复制代码
    示例:
    1. sh-4.2$ ls1        1#2    '1(2'  '1linux2'  12     '1?2'  '1\2'  1_2  1~2  A        A.TXT  A_ '1  2'        '1&2'  '1)2'  1.2    '1=2'  1@2    '1[abc]2'  1ls  2    A.        A.txt  sh-4.2$ ls linux1        1#2    '1(2'  '1linux2'  12     '1?2'  '1\2'  1_2  1~2  A        A.TXT  A_ '1  2'        '1&2'  '1)2'  1.2    '1=2'  1@2    '1[abc]2'  1ls  2    A.        A.txt ## [[:digit:]][[:punct:]]? 表示数字符号字符sh-4.2$ ls [[:digit:]][[:punct:]]?1#2  '1&2'  '1(2'  '1)2'  '1linux2'  1.2  '1=2'  '1?2'  1@2  '1\2'        '1[abc]2'  1_2  1~2
    复制代码
    1. {ab,c,de}
    复制代码
    1. sh-4.2$ ls 11sh-4.2$ ls 1linux1  '1  2'  1#2        '1&2'  '1(2'  '1)2'  '1linux2'  1.2  12  '1=2'  '1?2'  1@2        '1\2'  '1[abc]2'  1_2  1ls        1~2sh-4.2$ ls 1?12
    复制代码
    1. ### built-in内中字符的某一个sh-4.2$ ls [12]1  2sh-4.2$ ls [1A]1  A### [[abc]1A]不为1和A的一个字符sh-4.2$ ls [[abc]1A]2
    复制代码
    1. ### [a,b,c]字符组合,使用逗号隔开sh-4.2$ ls {[1A],2}1  2  Ash-4.2$ ls {[1A],A_}1  A  A_sh-4.2$ ls {[[:digit:]],A_}1  2  A_sh-4.2$ ls {### []内中字符的某一个
    2. sh-4.2$ ls [12]
    3. 1  2

    4. sh-4.2$ ls [1A]
    5. 1  A

    6. ### [!1A]不为1和A的一个字符
    7. sh-4.2$ ls [!1A]
    8. 2,A_}12  A_
    复制代码
    1. sh-4.2$ ls
    2. 1        1#2    '1(2'  '1*2'  12     '1?2'  '1\2'  1_2  1~2  A        A.TXT  A_ '1  2'        '1&2'  '1)2'  1.2    '1=2'  1@2    '1^2'  1ls  2    A.        A.txt  

    3. sh-4.2$ ls *
    4. 1        1#2    '1(2'  '1*2'  12     '1?2'  '1\2'  1_2  1~2  A        A.TXT  A_ '1  2'        '1&2'  '1)2'  1.2    '1=2'  1@2    '1^2'  1ls  2    A.        A.txt

    5. ## [[:digit:]][[:punct:]]? 表示数字符号字符
    6. sh-4.2$ ls [[:digit:]][[:punct:]]?
    7. 1#2  '1&2'  '1(2'  '1)2'  '1*2'  1.2  '1=2'  '1?2'  1@2  '1\2'        '1^2'  1_2  1~2
    复制代码
    1. ### ??
    2. sh-4.2$ ls ??
    3. 12  A.        A_
    复制代码
    1. ### ?问号可以表示一个字符sh-4.2$ ls ????'1  2'sh-4.2$ ls [[:digit:]][[:punct:]]?1#2  '1&2'  '1(2'  '1)2'  '1linux2'  1.2  '1=2'  '1?2'  1@2  '1\2'        '1[abc]2'  1_2  1~2### 空格是使用[[:space:]]来匹配sh-4.2$ ls ?[[:space:]][[:space:]]?'1  2'
    复制代码
    注释:
    使用[]时,如果同一个匹配超过一次,可以重复使用。
    例如:
    1. ### []内中字符的某一个
    2. sh-4.2$ ls [12]
    3. 1  2

    4. sh-4.2$ ls [1A]
    5. 1  A

    6. ### [!1A]不为1和A的一个字符
    7. sh-4.2$ ls [!1A]
    8. 2
    复制代码
    是合法的,但是
    1. ### {}字符组合,使用逗号隔开
    2. sh-4.2$ ls {[1A],2}
    3. 1  2  A

    4. sh-4.2$ ls {[1A],A_}
    5. 1  A  A_

    6. sh-4.2$ ls {[[:digit:]],A_}
    7. 1  2  A_

    8. sh-4.2$ ls {[[:digit:]][[:digit:]],A_}
    9. 12  A_
    复制代码
    是不可以的

    总结

    该节是通配符的种类和使用用例的总结,在
    1. ### [[:alnum:]]和[a-z0-9A-Z]同义
    2. sh-4.2$ ls [[:alnum:]]
    3. 1  2  A

    4. sh-4.2$ ls [[:upper:]]
    5. A
    复制代码
    的使用过程中,掌握通配符往往可以事半功倍。
    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    来源:https://www.jb51.net/server/339779oa9.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表