zoukankan      html  css  js  c++  java
  • Linux sed之正则表达式:sed替换字符串时,使用正则表达式的注意事项

     https://www.cnblogs.com/sisier/p/4453523.html

     

    一、元字符集

    ^  

      锚定行的开始 如:/^sed/匹配所有以sed开头的行。 

    $   

      锚定行的结束 如:/sed$/匹配所有以sed结尾的行。 

    .    

      匹配一个非换行符的字符 如:/s.d/匹配s后接一个任意字符,然后是d。 

    *  

      匹配零或多个字符 如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。 

    []  

      匹配一个指定范围内的字符,如/[Ss]ed/匹配sed和Sed。 

    [^]   

      匹配一个不在指定范围内的字符,

      如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。 

    (..)   

      保存匹配的字符,如s/(love)able/1rs,loveable被替换成lovers。 

    &    

      保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。 

    <

        锚定单词的开始,如:/<love/匹配包含以love开头的单词的行。 

    >

        锚定单词的结束,如/love>/匹配包含以love结尾的单词的行。 

    x{m}

        重复字符x,m次,如:/0{5}/匹配包含5个o的行。 

    x{m,}

        重复字符x,至少m次,如:/o{5,}/匹配至少有5个o的行。 

    x{m,n}

        重复字符x,至少m次,不多于n次,如:/o{5,10}/匹配5--10个o的行。

     

     

    https://www.cnblogs.com/aaronhoo/p/5284991.html

    sed替换字符串时,使用正则表达式的注意事项

     

    sed的使用方法为:

    使用单个模式替换:sed 's/pattern/replacement/flags' filename,例如echo 'abc' | sed 's/a/A/'-->Abc

    使用多个模式同时替换:sed 's/pattern1/replacement1/;s/pattern2/replacement2/' file,

    例如,sed 's/^s*//;s/s*$//' totrim.txt 可以实现trim()函数的效果(去掉字符串两端的空格字符)

    pattern可以使用正则表达式,不过写法要注意,例如一般用d表示一个十进制数,但在sed里,必须用[0-9]来表示,正则表达式一般用+(加号)表示一个或多个,但写在sed里前面必须加上转椅符号反斜杠,

    如sed 's/[0-9]+$//g' file,表示去掉文件中每行末尾的一个或多个数字。

    更多注意事项需要参考《Linux命令行与shell脚本编程大全 第2版》、《Linux shell脚本攻略第2版》

查看全文
  • 相关阅读:
    Ansible配置管理Windows主机
    Docker中安装rabbitmq并启用插件
    解决Ubuntu不能直接root用户连接ssh
    Error in invoking target ‘agent nmhs’ of makefile ‘/home/dong/tools/oracle11g/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’
    Ubuntu16.04安装sqlserver-快速入门
    记录一次归档日志爆满事件
    Linux下Mysql忘记root密码
    Ubuntu16.04安装Rabbitmq
    Oracle查看执行计划
    Ubuntu16.04随笔
  • 原文地址:https://www.cnblogs.com/e-shannon/p/15165668.html
  • Copyright © 2011-2022 走看看