shell 编程四剑客之SED

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 编程四剑客之SED相关的知识,希望对你有一定的参考价值。

(1)  SED 作用

   sed  是一个非交互式的文本编辑器, 对比Vi(vim) 是一个交互式的编辑器


(2) SED 语法

   sed  [-option]   [command]   files

 注释:

             sed 工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改, 需要加i 参数彻底修改


(3) SED实战


  SED 实战替换文本

   <1> jfedu.txt文件中,将文件中所有的old,替换为new

     sed    's/old/new/g'  jfedu.txt

   

   <2> jfedu.txt文件中,将http://www.jd.com替换为 http://www.baidu.com  

     sed  's#http://www.jd.com#http://www.baidu.com#g'   jfedu.txt

 

 SED 实战打印文本

 <1>  jfedu.txt文件中,打印第一行

     sed  -n  '1p'  jfedu.txt 

   

  <2> jfedu.txt文件中,打印1到3行

      sed   -n   '1,3p'  jfedu.txt


   <3> jfedu.txt文件中,打印最后一行

       sed   -n  '$p'   jfedu.txt

      

    <4> jfedu.txt文件中,打印第一行与最后一行

        sed   -n  '1p;$p'   jfedu.txt


     <5> jfedu.txt 文件中,打印第一行到最后一行

         sed   -n   '1,$p'  jfedu.txt


      <6> jfedu.txt文件中,打印/linux/这一行

        sed  -n  '/linux/p'  jfedu.txt  


       <7> jfedu.txt文件中,打印第一行与最后一行(用-e这个扩展参数实现)

         sed  -n   '1p'  -e  '$p'   jfedu.txt

        

        <8> jfedu.txt文件中,匹配/linux/这一行和/test/这一行,打印出来

          sed  -n  '/linux/,/test/p'  jfedu.txt


         <9> jfedu.txt文件中,匹配/linux/这一行到最后一行,打印出来

          sed  -n  '/linux/,$p'   jfedu.txt


  SED实战删除文本

     <1>  jfedu.txt文件中,删除第一行到第3行

         sed    '1,3d'  jfedu.txt


     <2> jfedu.txt文件中,删除linux匹配行到最后一行

         sed  '/linux/,$d'  jfedu.txt


 SED实战插入文本

    <1> jfedu.txt文件中,查找/linux/这一行,并在下一行添加word字符

       sed  '/linux/aword'  jfedu.txt


     <2> jfedu.txt文件中,  查找/linux/这一行,并在上一行添加word字符

       sed   '/linux/iword'  jfedu.txt


      <3> jfedu.txt文件中,  查找/linux/这一行,在上一行添加word字符,在下一行添加word字符

       sed  -e '/linux/aword'  -e  '/linux/iword/'  jfedu.txt


      <4> jfedu.txt文件中,查找以test结尾的行,并在其行尾添加word字符

        sed   's/test$/&word/g'  jfedu.txt


      <5> jfedu.txt文件中, 查找/www/所在行,在其行行首添加word字符

        sed   'www/s/^/&word/g'  jfedu.txt


       <6> jfedu.txt文件中,查找以com结尾的行,在行尾添加.  查找/mpt/所在行,在其行首添加.

         sed -e  's/com$/&./g'  -e  '/mpt/s/^/&./g'   jfedu.txt


        <7> 用sed打印根

          sed -n 's/\//p'


        <8> sed 读取变量,并进行替换

           website=www.jfedu.net

           sed  ''s/www.jd.com/$website/g''  jfedu.net


以上是关于shell 编程四剑客之SED的主要内容,如果未能解决你的问题,请参考以下文章

linux12shell编程 --> 三剑客之sed命令

SHELL编程四剑客练习--sed

Shell编程三剑客之sed

shell高级编程三剑客之sed实践讲解

4.shell编程-文本处理三剑客之sed

Shell编程之正则表达式三剑客——sed工具