十四、shell编程三剑客(2)sed


1.前言

  sed也叫流编辑,是一种在线的、非交互的编辑器,他一次成立一行内容。处理时,把当前处理的行储存在临时缓冲区中,称为“模式空间”,见着用sed命令处理缓冲区的内容,处理完成后,把缓冲区的内容送往屏幕。

  接着处理下一行,这样不断重复,知道文件末尾。文件内容并没有改变,除非你使用重定向存储输出,sed主要用来自动编辑一个或多个文件;简化对文件的反复操作。

2.格式

  sed  选项  命令  文件

  sed  选项 -f  脚本  文件  (不常用)

3.返回值

  都是0,对错不管

  只有当命令存在语法错误时,sed的退出状态才是非0.

4.汇总示例

  删除命令:d

    sed -r '/root/d' passwd  删除有rood的那行

    sed -r '3d' passwd  删除第三行

    sed -r '3{d}' passwd  删除第三行(专业点)

    sed -r '3{d;}' passwd  删除第三行,且还有其他命令

    sed -r '3,$d' passwd  删除3到最后一行

    sed -r '$d' passwd  删除最后一行

    蹦出来的是草稿,并没有执行,如果要执行要用-ri

  替换命令:s

  替换整行命令:c

  读文件命令:r

  写文件命令:w(另存为)

  追加命令:a(之后)

  插入命令:i(之前)

  获取下一行命令:n

  反向选择:!

  多重编辑:e