通配符&正则表达式

  1. 通配符

     通配符是系统级别的 ⽽而正则表达式需要相关⼯工具和语⾔言的⽀支持: egrep, awk, vi,perl.
    
     当您键入ls.txt命令并按Enter后,寻找哪些文件同.txt模式相匹配的任务不是由ls命令,而是由shell自己完成.这需要对命令行是如何被shell解析的作进一步解释.当您键入:
     ___________________________
     $ ls *.txt
     readme.txt   recipes.txt
     ___________________________ 
     该命令首先被分割成一系列单词(本例中的ls和.txt).当shell在某个单词中发现了,他会将整个单词当作通配模式解析,并用所有相匹配的文件替换它.因此,该命令在执行前就变成为ls readme.txt recipe.txt,而这将得到期望的结果.
    
  2. 通配符语法

     通配符语法: 星号 将与零个或多个字符匹配.意思是:"什么都可以".
     例如:/etc/g*  与/etc中以g开头的所有文件匹配.
    
     通配符语法:? 与任何单个字符匹配.
     例如:myfile? 与文件名 myfile后跟单个字符的任何文件匹配.
     /tmp/notes?txt 将与 /tmp/notes.txt 和 /tmp/notes_txt 都匹配.
    
     通配符语法:[] [!]  该通配符与?相似,但允许指定得更确切.要使用该通配符,把您想要匹配的所有字符放在[]内.结果的表达式将与[]中任一字符相匹配.您也可以用 - 来指定范围,甚至还可以组合范围.
     [...]:同方括号中的任意一个字符相匹配.这些字符可以用字符范围(比如1-9)或者离散值同时使用两者表示.例如:[a-zBE5-7]同所有a到z之间的字符和B,E,5,6,7相匹配.
     [!...]:与所有不在方括号中的某个字符相匹配.例如:[!a-z]同某个非小写字母相匹配[5];
    
     例子:myfile[12]将与myfile1和myfile2匹配. 只要当前目录中至少有一个这样的文件存在,该通配符就可以进行扩展.    
     ls /etc/[0-9]*将列出 /etc中以数字开头的所有文件. 
    
  3. 正则表达式

    • 选择

        |竖直分隔符代表选择.例如"gray|grey"可以匹配gray或grey
      
    • 数量限定

        +加号代表前面的字符必须至少出现一次.(0次,或1次).例如:"goo+gle"可以匹配google,gooogle,goooogle等.
        ?问号代表前面的字符最多只可以出现一次.(0次,或1次).例如:"colou?r"可以匹配color或者colour
        *星号代表前面的字符可以不出现,也可以出现一次或多次(0次,1次或多次),例如:"0*42"可以匹配42,042,0042,00042等.
      
    • 匹配

        圆括号可以用来定义操作符的范围和优先度.例如:"gr(a|e)y"等价于"gray|grey","(grand)?father"匹配father和grandfather
      

    上述这些构造都可以自由组合,因此,"H(ae?|b)ndel"和"H(a|ae|b)ndel"是相同的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值