码迷,mamicode.com
首页 > 其他好文 > 详细

sed解析和用例(马哥视频笔记)

时间:2015-02-28 08:59:58      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:sed   例子   流编辑器   

sed(流编辑器)

sed基本用法:

sed:Stream EDitor

     行编辑器(另一种:全屏编辑器:vi、vim)

sed:模式空间

        sed默认部编辑源文件,仅对模式空间中的数据做处理;而后将模式空间打印到屏幕(默认朱行读取)

sed ‘AddressCommand‘  file ...

对这个或者这种(file)文件当中的,符合这个地址指定范围(Address)内的行 实现执行以下编辑命令(Command)。

Address:

1、StartLine,Endline

     比如1,100

     $:最后一行

     $-1  倒数第二行

2、/RegExp/

     /^root/

3 、/pattern1/,/pattern2/

      第一次被pattern1匹配到的行开始,至第一行被pattern2匹配到的行结束,这中间的所有行

4、LineNumber

      指定的行

5、StartLine,+N

      从StartLine开始,向后的N行;

Command:

      d:删除符合条件的行;

      p:显示符合条件的行;注意,直接使用p会显示两次,一次是符合条件的内容,一次是显示模式空间;需要加-n

以下d的例子把d改为p,sed后面加个

 -n

,就只显示需要打印的内容

例如:      sed -n ‘/^\//p‘ /etc/fatab


-i:直接修改原文件

-e: SCRIPT -e SCRIPT:可以同时执行多个脚本


-f  /PATH/TO/SED_SCRIPT

    sed -f /path/to/scripts file   把某个路径下的脚本一个个运用到file里


-r:表示使用扩展正则表达式



      a \string:在指定的航后面追加新行,内容为"string"(不包括斜杠)

          sed ‘/^\//a \hhhhh‘ /etc/fatab

        加两行:

          sed ‘/^\//a \hhhhh\n\hhhhh‘ /etc/fatab(注意\n为换行号)


     i \string:在指定的航前面追加新行,内容为"string"(不包括斜杠)


     r FILE:将指定的文件的内容添加到符合条件的行处

sed ‘2r /etc/issue‘ /etc/fatab

sed ‘1,2r /etc/issue‘ /etc/fatab  一二行添加


     w FILE:将指定范围内的内容内存至指定的文件中

sed ‘/oot/w /tmp/oot.txt‘ /etc/fatab

    s///:查找并替换,默认只替换每一行中第一次被匹配到的字符串

   s/pattern/string/(修饰符[可选]):

    加修饰符: 

    g:全局替换   

    i:查找时忽略字符大小写

   s///也可以s###或s@@@只需要这三个符号一样,如果使用@@@或者###,则/不需要用转义字符表示,如:‘s@/@#@g‘   

  


1、sed ‘s/oot/OOT/‘ etc/fstab   :每一行的oot更换成OOT

2、sed ‘1,2s/oot/OOT/‘ etc/fstab   :第一二行的oot更换成OOT

3、sed ‘s/^\//#/‘ etc/fstab   :每一行行首的/更换成#

4、sed ‘s/\//#/‘ etc/fstab   :每一行的/更换成#

5、sed ‘s@l..e@&r@g‘ sed.txt

&引用模式匹配到的整个串

原本内容:

hello, like

hi, my love

后来:

hello,liker

hi,my lover

还可以 使用后向引用:  

sed ‘s@\(l..e\)@\1r@g‘ sed.txt

例子1:删除符合条件的行:

把 /etc/fstab的1、2行删除

sed ‘1,2d‘ /etc/fstab

例子2:删除第3行到倒数第二行(暂时去掉-1):

sed ‘3,$-1d‘ /etc/fstab

例子3:只要行中包含oot就给予删除:(使用模式,过滤特定的行)

sed ‘/oot/d‘ /etc/fstab

例子4:

sed ‘3,$+1d‘ /etc/fstab

例子5:

sed ‘1,1+2d‘ /etc/fatab

sed ‘2d‘ /etc/fatab

例子6:删除以斜线开头的行

sed ‘/^\//d‘ /etc/fatab


本文出自 “zgysolution” 博客,请务必保留此出处http://zgysolution.blog.51cto.com/9605745/1615838

sed解析和用例(马哥视频笔记)

标签:sed   例子   流编辑器   

原文地址:http://zgysolution.blog.51cto.com/9605745/1615838

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!