首页 > 代码库 > sed命令详解

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

sed命令详解