sed命令是文本处理三剑客至流编辑器,或者说是行编辑器。

sed的用法如下:

结构:

sed   [OPTION]...  {script-only-if-no-other-script}  [input - file]...

 地址界定编辑命令

常用选项:

-n:不输出模式空间中的内容至屏幕

-e script,--expression=script:多点编辑

-f  /PATH/TO/SED_SCRIPT_FILE

每行一个编辑命令

-r--regexp-extended:支持使用扩展正则表达式

-i[SUFFIX], --in-place[=SUFFIX]:直接 编辑原文件

地址定界:

1)不给 地址(空地址):对全文进行处理

2)单地址:

#:指定行

/pattern/: 此模式所匹配到的每一行

3)地址 范围

#,#:

#,+#

#,/pat1/

/pat1/,/pat2/

4)步进:~

1~2:所有奇数行

2~2:所有偶数行

编辑命令:

      d:删除

      p:显示模式空间中的内容

      a\text:在行后面追加文本“text”,支持使用\n实现多行插入

   i\text:在行前面插入文本“text”,支持使用\n实现多行插入

      c\text:把匹配到的行替换过为此处指定的文本“text

     w /PATH/TO/SOMEFILE:保存模式空间匹配到的行至指定的文件中

      r  /PATH/FROM/SOMEFILE:读取指定文件内容至当前文件被模式匹配到行后面;文件合并

    =:为模式匹配到的行打印行号:

   !: 条件取反(用法:地址定界!编辑 命令)

 s///:查找替换,其分割符可自行指定,常用的有S@@@,s###

    替换标记:

     g:全局替换

      w /path/to/somefile:将替换成功的结果保存至指定文件中;

     p:显示替换成功的行;

------------------------------------------------------------------------------------------------------------------------------------------------

高级编辑命令:

    h:把模式空间内的内容覆盖至保持空间中  

    H:把模式空间内的内容追加至保持空间中

    g:把保持空间中的内容覆盖至模式空间中

    G:把保持空间中的内容追加至模式空间中

     x:把模式空间中的内容与保持空间中的互换

    n:读取匹配到的行的下一行至模式空间中,(覆盖)

   N:读取匹配到的行的下一行至模式空间中;(追加)

    d:删除模式空间中的行

    D:删除多行模式空间中的所有行

 

计算机生成了可选文字: 示例: sed一n'n冲’「IL〔:显示偶数行; sed'IIG;h;$!d’「IL〔:逆序显示文件的内容; sed'$!d'FILE:取出最后一行二 sed'$IN;$!D,「ILE:取出文件后两行; sed'/八$ld乃’FIL〔:删除原有的所有空白行,而后为所有的非空白行后添加一个空白行 sed'n;d’「IL〔:显示奇数行; sed,G'FIL〔:在原有的每行后方添加一个空白行: