sed使用详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed使用详解相关的知识,希望对你有一定的参考价值。

sed:Stream EDitor

    行编辑器

    语法:sed [OPTION]... {script-only-if-no-other-script} [input-file]...

    常用选项:

        -n, --quiet, --silent:使用安静(silent)模式。在一般 sed 的用法中,所有来自STDIN的资     料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动       作)才会被列出来。

        -e script, --expression=script:多点编辑

        -f script-file, --file=script-file

        -f /path/to/script-file:直接将 sed 的动作写在一个档案内, -f filename 则可以执行     filename 内的sed 动作;

        -r, --regexp-extended:支持使用扩展正则表达式

        -i :直接在原文件里编辑

    地址定界:

        (1) 不给地址:对全文进行处理

        (2) 单地址:# :第#行

                    /pattern/:被pattern匹配到的每一行

        (3) 地址范围:#,# : 第#到#

                      #,+#:第#到其后面#行

                      /pat1/,/pat2/:从pattern1匹配到的至pat2匹配到的行

                      #,/pat/:第#行到pat匹配到的行

    编辑命令:

        d :删除

        p :打印 ,sed默认会将符合条件的行显示,所以只使用p会输出两次匹配行

        a text :在每个符合条件的行后面追加text,支持使用\n实现多行追加

        i text : 在行前面插入文本,支持使用\n实现多行插入

        c text :替换符合条件的多行文本

        w filename :将符合条件的内容另存为filename

        r filename :将filename中的内容读取到符合条件的行后面

        = : 显示符合条件的行的行号

        !: 条件取反

        s/查找/替换/ : 查找替换( 也可使用[email protected]@@ s### )

            替换标记:g:glob行内全局替换,默认为替换第一个

                      s/查找/&替换/ : &:引用查找条件符合的变量       

    示例:

        -n,p:打印/etc/fstab文件的第8到9行,单独使用"p"命令匹配到的行会出现两次,同"-n"同     时使用,则只打印匹配行      

   技术分享

        -e:一行命令中可执行多次"-e"选项,进行多次编辑。删除/etc/fstab文件中1到3行和8到10行。

技术分享

        -f,a text:将a text编辑命令写入sedtest文件内,使用"-f"选项引用sedtest文件执行符合     条件的每行后追加text内容

 技术分享

        -i:直接在原文件里编辑

技术分享

        i text /ntext1:实现在行前面插入多个文本

技术分享

        c text:替换符合条件的行为text

        技术分享

        w filename:将符合条件的内容另存为filename        技术分享

        r filname:将filename中的内容读取到符合条件的行后面    技术分享

         = : 显示符合条件的行的行号

技术分享

        !: 条件取反:条件为上例条件,则显示符合条件之后所有行的行号。

    技术分享

        s/查找/替换/ : 查找替换( 也可使用[email protected]@@ s### ):将“UUID”字符替换为“armo”

技术分享

       高级编辑命令:

              h:把模式空间中的内容覆盖至保持空间中

              H:把模式空间中的内容追加至保持空间中

              g:从保持空间取出数据覆盖至模式空间

              G:从保持空间取出数据追加至模式空间

              x:把模式空间中的内容与保持空间中的内容进行互换

              n:读取匹配到的行的下一行到模式空间

              N:追加匹配到的行的下一行到模式空间

              d:删除模式空间中的行

              D:删除多行模式空间中的所有行


本文出自 “机智少年普朗克” 博客,请务必保留此出处http://armolee.blog.51cto.com/6288560/1740641

以上是关于sed使用详解的主要内容,如果未能解决你的问题,请参考以下文章

Linux中的sed详解

sed命令使用详解归纳

sed命令详解

linux之sed命令详解

sed -i命令详解 转

Shell脚本学习之sed详解