• Shell学习之结合正则表达式与通配符的使用(五)


     

     

    Shell学习之结合正则表达式与通配符的使用

    目录

    通配符

    正则表达式

     

     通配符

    正则表达式与通配符

    正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。
    
    通配符用来匹配符合条件的文件名,通配符是完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来就行匹配。
    

      

    通配符

    符号	作用
    *	匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *
    ?	匹配任何一个字符(不在括号内时)?代表人意1个字符 ls file 0
    [abcd]	匹配abcd中任何一个字符
    [a-z]	表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls file 0
    {..}	表示生成序列。以逗号分隔,且不能有空格
    补充	 
    [!abcd]	或[^abcd]表示非,表示不匹配括号里面的任何一个字符
    

      

    通配符的使用

    ? 匹配任何一个字符

    ls /bin/???
    
    ls /bin/??

     [abcd] 表示匹配中括号内任意一个字符就成

    ls te[asb]t
    

     {}生成序列

    touch {a..c}

    匹配文件

    ls [a-c]

    利用{}备份数据库 

    表示将ae复制一份叫做affff
    cp a{e,fff}
    
    表示将ae做备份叫做ae.bak
    cp a{e,e.bak}
    

      

     

    !^表示非,取反

    查找文件名里没有a和e的文件名
    ls [!ae] ls [^ae]

      

    正则表达式

    正则表达式

     

    正则表达式的使用

    "*" 前一个字符匹配0次,或者任意多次
    
    匹配至少包含有一个a的行
    grep "aa*" test.txt
    
    匹配至少包含有两个a的行
    grep "aaa*"
    
    
    "."匹配除了换行符以外任意一个字符
    
    匹配所有内容
    grep ".*" test.txt
    
    匹配在s与d之间一定有两个字符的单词
    grep "s..d" test.txt
    
    匹配在s与d之间有任意字符
    grep "s.*d" test.txt
    
    
    "^"匹配行首,"$"匹配行尾
    
    匹配空白行
    grep "^$" test.txt
    
    匹配以大写字母M开头的行
    grep "^M" test.txt
    
    匹配以小写字母m结尾的行
    grep "m$" test.txt
    
    
    
    "[]'匹配中括号中指定的任意一个字符,只匹配一个字符
    匹配s和i字母中,要不是a、要不是b
    grep "s[ao]id" test.txt
    
    匹配任意一个数字
    grep "[0-9]" test.txt
    
    匹配用小写字母开头的行
    grep "^[a-z]" test.txt
    
    
    
    "[^]"匹配除中括号的字符以外的任意一个字符
    匹配不用小写字母开头的行
    grep "[^a-z]" test.txt
    
    匹配不用字母开头的行
    grep "^[^a-zA-Z]" test.txt
    
    
    "" 转义符
    匹配以点结尾的行
    grep ".$" test.txt
    
    
    "{n}" 表示其前面的字符恰好出现n次
    
    匹配a字母连续出现三次的字符串
    grep "a{3}" test.txt
    
    匹配包含连续的三个数字的字符串
    grep "[0-9]{3}" test.txt
    
    
    "{n,}" 表示其前面的字符出现不小于n次
    
    匹配最少用连续三个数字开头的行
    grep "^[0-9]{3,}[a-z]" test.txt
    
    
    
    "{n,m}'匹配其前面的字符至少出现n次,最多出现m次
    
    匹配在字母s和字母i之间有最少一个a,最多三个a
    grep "sa{1,3}i" test.txt
    

      

  • 相关阅读:
    sql 2008 r2
    js压缩反压缩
    .NET调用Java写的WebServices(可能会碰到的问题)
    ecshop
    Chrome插件
    Unity3d ShaderLab之WorldNormalVector
    Unity 3d中Shader是什么,可以吃吗?
    java,类的继承
    java,关于POJO,查阅资料
    java,编写一个汽车类
  • 原文地址:https://www.cnblogs.com/-wenli/p/10385468.html
Copyright © 2020-2023  润新知