Linux系统中的通配符与正则表达式简介

1.通配符

通配符在Linux系统中通常是用于查找匹配文件名的,一般配合find命令来使用。除去常用的通配符外,一些特殊符号往往也被称为通配符,本文将分别介绍。

一般用来匹配文件名的。
匹配文件名常用的通配符:
    *:代表任意字符
    ?:代表任意单个字符
    [ ]:匹配指定范围内的任意单个字符

其他通配符:
    ;:两个命令之间的分隔符
    #:在配置文件里,注释效果
    |:管道
    $:变量前需要加的符号
    /:路径分隔符,也是根
    >或1>:输出重定向,覆盖原有数据
    >>:追加输出重定向,追加在文件内容的尾部
    <:输入重定向(xargs,tr)
    <<:追加输入重定向(cat)
    ' ':单引号,不具备变量置换功能,引号内所见即所得
    " ":双引号,具备变量置换功能,解析变量后输出,不加引号相当于双引号
    ` `:反引号,两个``中间为命令,会先执行,等价$()
    { }:中间为命令去块组合或内容系列
    ! :逻辑运算中的“非”(not)
    &&:and并且,当前一个指令执行成功时,执行后一个指令
    ||:or或者,当前一个指令执行失败时,执行后一个指令
    ..:代表上级目录
    . :代表当前目录
    ~:当前用户的家目录
    -:上一次的所在目录

2.正则表达式

正则表达式往往用来匹配文本中的字符串,常配合三剑客使用,来取出我们想要的行和列。它是用于处理大量字符串而定义,grep、sed、awk都支持正则表达式。

基础正则:
    字符匹配:
        .:任意单个字符
        *:任意长度/次数的字符
        []:指定范围内的任意单个字符
        [^]: 指定范围外的任意单个字符
    元字符:
        [[:upper:]]:任意大写字母
        [[:lower:]]:任意小写字母
        [[:digit:]]:任意一个数字
        [[:alpha:]]:任意大小写字母
        [[:punct:]]:标点符号
        [[:space:]]:一个空格
        [[:alnum:]]:任意一个字母或数字
    行锚定:
        ^:行首
        $:行尾
        ^$:空行
        ^[[:space:]]$:空白行
扩展正则:
    次数匹配:
      |:扩展正则,用于多个字符匹配
      \+:匹配前面的字符1-任意次
      \?:匹配前面的字符0-1次
      \{n,m\}:匹配前面的字符最少n次,最多m次
      \{,m\}:0-m次
      \{n,\}:最少n次
      \{n\}:匹配n个(次)
    边界符:
          \<:匹配字符串从此开始
          \>:匹配字符串到此结束
          \b或\bString\b:匹配字符串 
          \:匹配包含整个单词/字符串的行
    分组匹配(sed常用):
        \(First\) A \(Second\) \1或者\2
        \(xy\(ab\)\) \1或者\2:1是匹配xy 2是匹配ab
        [root@mod-200 ~]#echo "I wanna you"|sed -r 's/(.*)/\1 go home!/g'
        I wanna you go home!

转义特殊字符(非正则):
        \\:匹配\
        \s:空格
        \n:回车
        \^,\$,\.:匹配^ $ .

你可能感兴趣的:(Linux系统中的通配符与正则表达式简介)