• 正则表达式


    1.正则表达式

    ^  $    .   *  []  BRE

     

    ^  以......开头    ^m

     

    $   以........结尾   m$     空格$

     

    cat  -A  显示全部隐藏特殊符号  每行结尾  都有一个$

     

    ^$    表示空行

    grep -n '^$'  zzz.txt

    显示文件的空行

     

     cat -An  zzz.txt显示所有行   符号

     

     [root@zzz]# grep -vn '^$'  zzz.txt

      不显示 空行 显示行号

    .    任意一个字符   不会匹配空行 不显示空行

       转义符号    把特使符号脱掉马甲打回原形 

    配合

       回车   换行符号

    tr

    把zzz.txt中的 回车换行替换为空格符号

    tr ' ' " "  <zzz.txt

     

    *  前一个字符 出现了0次 0次以上

    出现了0次相当与没有

    ‘0*’ 会把文件的内容全部显示出来

         .* 正则表示  连续出现或者所有(.*)有多少吃多少

              并且并且并且并且

       -o   都变序列了

     

    [root@zzzedu45-zbb zzz]# grep '^m.*m$' zzz.txt

    my blog is http://zzz.blog.51cto.com

    [root@zzzedu45-zbb zzz]#

     

    找回以点结尾的行

    [root@zzzedu45-zbb zzz]# grep '.$'  zzz.txt

    I teach linux.

    not 4900000448.

    [root@zzzedu45-zbb zzz]#

    #把文件中每一行结尾的空格删除

     

    sed 's# $##g' zzz.txt|cat - A

    sed 's# $##g' zzz.txt   -i

     

     

     

    []相当与是一个符号(每次匹配1个符号)  找出a或者b

    grep   ‘【abc】’   zzz.txt

     

     

    #1.找出文件中以m或n开头的行

    [root@zzzedu45-lnb zzz]# grep '^[mn]' zzz.txt

    #2.找出文件中以m或n或o开头并且以m或.(点)结尾的行

    [root@zzzedu45-lnb zzz]# grep '^[mno].*[m.]$' zzz.txt

     

     

    [root@zzzedu45-lnb zzz]# grep '.$' zzz.txt

    I teach linux.

    not 4900000448.

    [root@zzzedu45-lnb zzz]# grep '[.]$' zzz.txt

    I teach linux.

    not 4900000448.

     

    grep  ‘[0-9]’   zzz

     

    grep  ‘[0-9a-z]’   zzz   

     

     

    grep  '[^abv]'  zzz.txt   ^是排除的意思

     

     

    2. 扩展正则表达式  ERE

    +

    |

    ()

    {}

     

     

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

     

     

    [root@zzzedu45-lnb zzz]# egrep '0' zzz.txt

    my qq is 49000448

    not 4900000448.

    [root@zzzedu45-lnb zzz]# egrep '0+' zzz.txt

    my qq is 49000448

    not 4900000448.

    [root@zzzedu45-lnb zzz]# egrep '0' zzz.txt -o

    0

    0

    0

    0

    0

    0

    0

    0

     

    [root@zzzedu45-lnb zzz]#

    [root@zzzedu45-lnb zzz]# egrep '0+' zzz.txt -o

    000

    00000

     

     

     

    egrep '[a-Z]+'  zzz.txt     -o

    把文件中单词显示出来

    连续出线的大小写字母

     

     

      |   或者的意思

    [abc]区别   单个字符

    a|b|c

     

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

    先保护  后引用

     egrep 'oldb(o|e)y'

     

    sed  支持扩展正则  -r

     

    root@zzzedu45-lnb zzz]# echo '<123456>'

    <123456>

    [root@zzzedu45-lnb zzz]# echo 123456|sed 's#(.*)#  1#g'

    sed: -e expression #1, char 13: invalid reference 1 on `s' command's RHS

    [root@zzzedu45-lnb zzz]# echo 123456|sed -r 's#(.*)#  1#g'

      123456

    [root@zzzedu45-lnb zzz]# echo 123456|sed -r 's#(.*)#<1>#g'

    <123456>

     

    [root@zzzedu45-lnb zzz]# echo 123456|sed -r 's#(..)(..)(..)#1<2>3#g'

    12<34>56

    [root@zzzedu45-lnb zzz]# echo 123456

    123456

    [root@zzzedu45-lnb zzz]# echo '12<34>56'

    12<34>56

    [root@zzzedu45-lnb zzz]# echo 123456|sed -r 's#..(..)..#<1>#g'

    <34>

    [root@zzzedu45-lnb zzz]# echo 123456|sed -r 's#(..)(..)(..)#1<2>3#g'

    12<34>56

     

     

     

    {}0{n,m}前一个字符至少出现n次  最对出现m次

     *   >=0

     +  >=1

    egrep '0{1,3}' zzz.txt

    [root@zzzedu45-lnb zzz]# egrep '0{3,4}' zzz.txt

    my qq is 49000448

    not 4900000448.

    0000000000000000000000000000000zzz

    [root@zzzedu45-lnb zzz]# egrep '0{3,4}' zzz.txt -o

    000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

    0000

     

    egrep '[0-9]{17}[0-9X]'  id.txt

    ?  前一个字符出现0次或者1次

     

    正则 处理文字符号  文件过滤文件内容

    坏境如下

     

    cat zzz.txt

    I am zzz teacher!

    I teach linux.

     

    I like badminton ball ,billiard ball and chinese chess!

    my blog is http://zzz.blog.51cto.com

    our size is http://blog.zzzedu.com

    my qq is 49000448

    not 4900000448.

    my god ,i am not oldbey,but zzz!

  • 相关阅读:
    Happy Pi day 试一试pi的可视化
    Happy Pi day 查看pi中数字出现的次数
    3.1阈值化操作
    3.1.3自适应阈值化
    3.1.2固定阈值化
    3.1.4双阈值法二值化操作
    3.1.1 OTSU阈值化
    memset函数
    3.6.2投影峰谷查找
    3.6.1直方图&最大熵分割
  • 原文地址:https://www.cnblogs.com/zdqc/p/9430203.html
Copyright © 2020-2023  润新知