sed命令详解

sed 命令
sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出都被打印到屏幕上。
sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存到一个临时缓冲区中(也称模式空间),然后处理历史缓冲区中的行,完成后把改行发送到屏幕上。sed每处理完一行就将其充临时缓冲区删除,然后将下一行读入,进行处理和显示。处理完输入文件的最后一行,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
  
  选项:
    -e : 进行多行编辑,即对输入行应用多条sed命令时使用
    -n : 取消默认的输出
    -f : 指定sed脚本的文件名

  命令:
    a\ : 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用'\'续行
    c\ : 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用'\'续行
    i\ : 在当前行之前插入文本。多行时除最后一行外,每行末尾需用'\'续行
    d : 删除行
    h : 把模式空间里的内容复制到暂存缓冲区
    H : 把模式空间里的内容追加到暂存缓冲区
    g :把暂存缓冲区里的内容复制到模式空间里,覆盖原有的内容
    G : 把暂存缓冲区里的内容追加到模式空间里,追加在原有内容的后面
    l : 列出非打印字符
    p : 打印字符
    n : 读入下一输入行,并从下一条命令而不是第一条命令开始对其处理,允许跨行的模式匹配语句
    q : 结束或退出输入行
    r : 从文件中读取输入行
    ! : 对所选行以外的所有行应用命令
    s : 用一个字符串替换另一个
    g : 在行内进行全局替换
    w : 将所选的行写入文件
    x : 交换暂存缓冲区与模式空间的内容
    y : 将字符替换为另一个字符(不能对正则表达式使用y命令)

 

 参考:http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html

posted @ 2014-11-25 10:30  冷冰若水  阅读(194)  评论(0编辑  收藏  举报