zoukankan      html  css  js  c++  java
  • shell通配符(元字符)

    shell中的通配符(元字符),表示不是本意,由shell来解析

    常用的元字符有:

    *  匹配任意多个字符

    ?  匹配任意一个字符

    []  匹配括号中任意一个字符

      转义符,让元字符回归本意

    {}  集合 touch file{1..5}  mkdir -p  /home/{333/{a,b},444}

    ()  在子shell中执行,不影响当前shell,(umask 077;touch file01)

    正则表达式元字符  由各种执行模式匹配操作的程序来解析,比如vi、grep、sed、awk,在大多数程序中,正则表达式都被置于两个正斜杠之间。它将匹配被查找到行中任何位置出现的相同模式,在正则表达式中,元字符式最重要的概念。

     vim示例:

    cat  a.txt  

    tom   anatomy    tomatos   tomorrow

    :1,$  s/tom/David/g  #如tom、anatomy、tomatos、tomorrow中的“tom”都被替换了,而Tom却没有替换

    :1,$  s/<[Tt]om>/David/g  #<>表示匹配一个单词,单词前后可以有符号,但是不能出现任何单词,只有tom被替换,其余都未替换。

    基本正则表达式元字符

    元字符      功能          示例

    ^        行首定位符      ^love  

    $        行尾定位符      love$

    .        匹配单个字符      l..e

    *        匹配前导符0次到多次  ab*love

    .*        匹配任意多个字符    

    []        匹配指定范围内的一个字符  [lL]ove

    [ - ]       匹配指定范围内的一个字符  [a-z]ove

    [^]       匹配不在指定组内的字符    [^a-z]ove

            用来转义元字符      love.

    <        词首定位符        <love

    >        词尾定位符        love>

    (..)      匹配稍后使用的字符的标签  :3,9 s/(.*)/#1/

    x{m}      字符x重复出现m次     0{3}

    x{m,}      字符x重复出现m次以上    0{2,}

    x{m,n}      字符x重复出现m到n次     1{3,5}

    扩展正则表达式元字符

    +      匹配一个或多个前导字符    [a-z]+ove

    ?      匹配0个或1个前导字符     lo?ve

    a|b      匹配a或b          love|hate

    ()       组字符          love(able|rs)ov+  ov+     (ov)+

    (...)(...)12  标签匹配字符        (love)able1er  

    x{m}    字符x重复m次        o{5}

    x{m,}     字符x重复至少m次      o{5,}

    x{m,n}     字符x重复m到n次      o{5,10}

    *、?、+、{}不能单独存在,为别人而存在。

    Love*         0到多次

    Love?         0到1次

    Love+         1到多次

    Love{2}         2次

    Lo(ve)*        ve匹配0到多次

    Lo(ve)?        ve匹配0到1次

    Lo(ve)+        ve匹配1到多次

    Lo(ve){2}        ve匹配2次

  • 相关阅读:
    Java注解入门
    两种求素数
    几个经典的递归小程序
    Java8新特性——接口的默认方法和类方法
    SSH框架总结
    初识SSH框架
    Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的
    使用SQL查询所有数据库名和表名
    mybatis中#{}和${}的区别
    SOCKET, TCP/UDP, HTTP, FTP 浅析
  • 原文地址:https://www.cnblogs.com/xiaofeng666/p/12233567.html
Copyright © 2011-2022 走看看