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

sed命令

时间:2015-08-15 06:49:19      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:编辑器   command   表达式   stream   空间   sed   

sed基本用法:

sed:stream editor,它是一个行编辑器,它并不编辑文件本身,它把符合条件的行读入内存(模式空间),对其进行操作后显示出来。


命令格式:

sed  [option] ‘adresscommand‘ file

option:

    -n:不打印模式空间中的内容(静默模式)

    -i:直接修改原文件

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

    -f filename or path:可以把脚本写入文件 ,然后读取执行操作

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

Address:

  1. startline,endline,比如1,100

  2. /RegExp/, 比如/^root/,匹配以root开头的行

  3. /pattern1/,/pattern2/  表示第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这之间所有行。

  4. linenumber 指定的行

  5. startLine,+N 表示从开始行向后的n行,一共n+1行。


command:

    d:删除  例:#sed "1,2d" /etc/fstab 删除文件前两行 $代表最后一行

            sed "/oot/d" /etc/fstab 删除文件中带有oot的行

            sed "1d" /etc/fstab 删除第一行

    p:显示符合条件的行

            例:sed "/^\//d" 删除以/开头的行

    a:\string 在匹配的行后面追加新行,内容为string

            例:sed "/^\//a \heheda" /etc/fstab 在以/开头的行后追加heheda


    i:\string 在匹配的行前面插入新行,内容为string

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

            例:sed "2r /etc/issue" /etc/fstab 在fstab第二行插入/etc/issue的内容

    w FILE :把符合条件的行保存到另一个文件中

            例:sed "/^1/w /hehe.txt" /etc/fstab 把开头为1的行另存为至 、

    s/pattern/string/:查找并替换,默认替换每行中第一次被模式匹配到的串,如果要全局替换,则要加修饰符:

    修饰符:

        -g :全局替换: 例: sed "s/hehe/haha/g" /etc/passwd

        -i: 不区分大小写

            例:sed "s/hehe/haha/" /etc/passwd 把每行中第一次出现的hehe替换成haha

            这里的s///中的/可以为三个任意想同字符:所以上面一句可以等价为:

            sed "s@hehe@haha@" /etc/passwd

例子1:

l..e: like-->liker

      love-->lover


    sed "s#l..e#&r#g" sed.txt

    &:表示模式匹配到的整个串

也可以使用后向引用实现:

    sed "s#\(1..e\)#\1r#g" sed.txt


有些时候只可以使用后向引用,而不能使用&


比如:like-->Like

      love-->Love

      sed "s#l\(..e\)#L\1#g" sed.txt #\1就是代表前面括起来的部分


例子2:

删除文件行首的空白字符

sed "s/^[[:space:]]*//" sed.txt


技术分享






sed命令

标签:编辑器   command   表达式   stream   空间   sed   

原文地址:http://hackcrack.blog.51cto.com/6169318/1684788

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