码迷,mamicode.com
首页 > 系统相关 > 详细

2016-3-8 linux基础学习——sed命令

时间:2016-03-09 07:10:37      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:linux   源文件   编辑器   表达式   双引号   

sed(Stream EDitor)行编辑器(全屏编辑器:vi)
    
    sed:显示模式空间
    默认不编辑文件,仅对模式空间中的数据做处理
    而后,处理结束后,将模式显示在屏幕上
    
    sed -n ‘AddressCommand‘ file ...
        单/双引号都可以,双引号可实现变量替换
        -n:静默模式 不再默认显示模式空间中的内容
        -i:直接修改源文件
        -e SCRIPT -e SCRIPT:可以同时执行多个脚本
        -f /PATH/TO/SED_SCRIPT/:
            sed -f path/to/script file
        -r:表示使用扩展正则表达式
    
    Address:地址
    1.起始行,结束行
        比如1,100
        $:最后一行
        $-1 :倒数第一行
    2./RegExp/利用模式匹配,需要两个斜杠包括起来
        比如/^root
    3./pattrnl/,/pattern2/
     第一次被pattrn1匹配到的行开始,到第一次被pattrn2匹配到的行结束,这中间的所有行
    4.LineNumber
        指定的行
    5.起始行,+N
        从起始行开始,向后的N行
    
    
    Command:命令
        d:删除符合条件的行
        p:显示符合条件的行
        a \string: 在指定的行后面追加新行,内容为string
        i \string: 在指定的行前面追加新行,内容为string
        r FILE:将指定的文件内容添加至符合条件的行处
        w FILE:将指定的文件内容另存至指定文件中
        s /pattern/string/修饰符:查找pattern(可用正则表达式)并替换成string
            (默认只替换每行中第一次被模式匹配到的字符串)    
            g:全局替换
            i:查找时忽略大小写
        s///:s###,s@@@也可
            分隔符不仅限于/ 只要查找替换的字符不是分隔符
        &:引用模式匹配整个串

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

    课练1:编辑一个txt文件
        ①like-liker    love-lover    
        ②like->Like    love->Love
    课练2:删除/etc/grub.conf文件中行首的空白符
    课练3:替换/etc/inittab文件中“id:5:initdefault:”一行中的数字为3
    课练4:删除某文件中的空白行
    课练5:删除某文件中开头的#号.(eg:#abc)
    课练6:删除某文件开头的#号及后面的空白字符,但要求#后面必须有空白字符.(# abc)
    课练7:删除某文件以空白字符后面跟#类的行中的开头的空白字符及#.( #abc)
    课练8:取出一个文件路径的父目录名称

技术分享

技术分享

技术分享

技术分享

技术分享


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

2016-3-8 linux基础学习——sed命令

标签:linux   源文件   编辑器   表达式   双引号   

原文地址:http://11170930.blog.51cto.com/11160930/1748900

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