zoukankan      html  css  js  c++  java
  • linux正则表达式

    第1章 正则表达式

    1.1 正则表达式

    查找文本内容,快速过滤

    1.2 正则表达式分类

    1.2.1 基础正则

    ^    以…...开头的行 ^m
    
    $    以…...结尾的行 m$
    
    ^$   空行(什么符号都没有)
    
    .     任意一个字符,不会匹配空行
    
         (撬棍)转义字符
    
    *     前一个字符连续出现0次或0次以上
    
    .*     所有字符,包括空行
    
    []     相当于一个符号,每次匹配1个字符
    
    [abc]  找出包含a或b或c
    
    [^]    排除,排除[]里的每一个字符
    
    [^abc] 找出除了a或除了b或除了c外

     

    1.2.2 扩展正则

    +     前一个字符连续出现1次或1次以上
    
    |      或者
    
    ()     表示一个整体   sed反向引用/后向引用
    
    {}       0{n,m} 数字0连续出现了至少n次,最多m次
    
    ?      前一个字符连续出现0次或1次   前一个字符有或没有

    1.3 基础正则与扩展正则的区别

    1.3.1 符号不同

    基础正则: ^   $   ^$   .    .*    []    [^]
    
    扩展正则: +   |   ()   {}   ?

    1.3.2 支持的命令不同

    基础正则:grep  sed  awk
    
    扩展正则:egrep(grep  -E)    sed –r      awk

    1.4 ^ 以....开头的行 ^m

    [root@zeq /oldboy]# grep '^m'  oldboy.txt
    
    my blog is http://oldboy.blog.51cto.com
    my qq is 49000448
    my god ,i am not oldbey,but OLDBOY!

    1.5 $ 以….结尾的行  $

    cat -A 显示文件中所有符号  每行结尾都会有个$
    
    [root@zeq /oldboy]# grep  ' $'  oldboy.txt
    
    my blog is http://oldboy.blog.51cto.com
    our size is http://blog.oldboyedu.com

    1.6 . 任意一个字符,不会匹配空行

    [root@zeq /oldboy]# grep  '.' oldboy.txt
    
    grep –o                                          grep命令执行过程
    
    [root@oldboyedu50-lnb /oldboy]# grep -o '.' oldboy.txt

    1.7 + 前一个字符连续出现1次或1次以上

    [root@zeq /oldboy]# egrep '0+' oldboy.txt
    
    my qq is 49000448
    not 4900000448.

    1.8 | 或者

    [root@zeq /oldboy]# egrep 'oldboy|linux'   oldboy.txt
    
    I am oldboy teacher!
    I teach linux.
    my blog is http://oldboy.blog.51cto.com
    our size is http://blog.oldboyedu.com

    1.9 - () 表示一个整体  反向引用/后向引用

    1.9.1 表示一个整体

    [root@zeq /oldboy]# egrep 'oldb(o|e)y'  oldboy.txt
    
    I am oldboy teacher!
    my blog is http://oldboy.blog.51cto.com
    our size is http://blog.oldboyedu.com
    my god ,i am not oldbey,but OLDBOY!

    1.9.2 反向引用/后向引用

    [root@oldboyedu50-lnb /oldboy]# echo 123456|sed -r 's#(.*)#<1>#g'
    
    <123456>                                                    1 表示第一个括号

    1.10 {} 0{n,m} 数字0连续出现了至少n次,最多m次

    [root@oldboyedu50-lnb /oldboy]# egrep '0{3,4}' oldboy.txt
    
    my qq is 49000448
    not 4900000448.
    
     
    [root@oldboyedu50-lnb /oldboy]# cat id.txt
    211324198705244720500224197105168312
    任 1231231231oldboy
    任 3oldboy
    任 lidao97303136098
    任 alex2197303136098
    任 350182197303oldgir
    吕 211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101
    向 14052219961008852X
    
     
    
    [root@oldboyedu50-lnb /oldboy]# egrep '[0-9X]{18}' id.txt
    211324198705244720500224197105168312211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101
       XXXXXXXXXXXXXXXXXX
    向 14052219961008852X
    
     
    
    [root@oldboyedu50-lnb /oldboy]# egrep '[0-9]{17}[0-9X]' id.txt
    211324198705244720500224197105168312211282199209113038150000198309176071371001197412221284130185200011215926362522198711278101
    向 14052219961008852X

    第2章 取出eth0网卡的ip地址

    2.1 方法1

    [root@zeq /oldboy]# ip a s eth0 |awk 'NR==3'|awk  -F"[ /]+"  '{print $3}'
    
    10.0.0.200
    
    [root@oldboyedu50-lnb /oldboy]#

    2.2 取出ifconfig eth0 ip地址和子网掩码

    [root@zeq /oldboy]# ifconfig eth0 |awk 'NR==2' |awk -F"[ :]+"  '{print $4,$NF}'
    
    10.0.0.200 255.255.255.0
  • 相关阅读:
    周末总结
    大数据开源框架技术汇总
    oracle迁移mysql总结
    梯度下降
    BFC的概念
    元素类型
    window10安装tensorflow
    学习使用git
    设计模式中的关系
    拟合圆
  • 原文地址:https://www.cnblogs.com/zeq912/p/9430383.html
Copyright © 2011-2022 走看看