sed是一个流文本处理器,它会讲文件中的每一行读入内存中,也就是sed命令中的模式空间。每读入一行后,匹配模式和命令。处理结束后显示到屏幕上。注意它并不对源文件做修改,只是在内存中修改罢了

sed命令的格式“
sed [options] 'AddressCommand' file.....

其中,address定位处理那些行。它符合以下几种形式:

  1. Startline,Endline:比如1,100,代表读取第一行到第二行

    $代表最后一行

  2. /正则表达式/:/^root/,代表行首为root的行。记住正则表达式一定要用//括起来

  3. /正则表达式1/,/正则表达式2/:从1开始,到2结束

  4. linenunber,精确的行

  5. startline,+N:从startline开始向后N行

Command:

  d:删除符合条件的行

  p:显示符合条件的行,默认情况下每一行会显示两次,因为sed命令的默认行为就是把模式空间的行显示到屏幕上,可以和-n选项配合使用

  a \string:在指定的行后面追加新行,换行符\n

   i \string:在指定的行前面追加新行

  r file: 将指定的文件内容添加至符合条件的行处

  w file:将指定范围内的内容另存到指定的文件中

  s/正则表达式/string/:查找模式匹配的字符串并替换(string)


options

-n:静默模式,不再默认显示模式空间中的内容。