1. sed:数据流编辑器 
  2.    sed基本用法 
  3.     sed:Stream EDitor 
  4.     sed: 行编辑器[全屏编辑器:vi] 
  5.     sed的内存空间称为模式空间: 
  6.         默认不编辑源文件, 
  7.         sed [options]'AddressCommand' file ...... 
  8.         -n:只打印符合条件的行 
  9.         -i :直接修改源文件 
  10.         -e SCRIPT -e SCRIPT:可以同时支持多个脚本 
  11.         -f /PATH/TO/SED_SCRIPT 
  12.             sed -f /path/to /scripts file 
  13.         -r:表示使用扩展正则表达式 
  14.     Address: 
  15.         1.StartLine,EndLine (起始行,结束行)中间用,(逗号)隔开 
  16.             比如1,100 从第一行到第一百行 
  17.             $:最后一行。$-1 倒数第二行 
  18.         2./RegExp/  这个模式就是正则表达式 
  19.             /^root/  表示以root字符串开头的行 
  20.         3./pattern1/,/pattern2/ 
  21.             第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行              
  22.         4.LineNumber 
  23.             指定的行 
  24.         5.StartLine ,+N 
  25.             从startLine开始,向后的N行 
  26.           
  27.     Command : 
  28.          d:删除符合条件的行:sed '1,2d' /etc/fstab 删除第一行,第二行,,,,sed '/oot/d' /etc/fstab 删除中包含oot的行 
  29.              sed'1,+2d' /etc/fstab 删除前三行 
  30.          p:显示符合条件的行;sed '/^\//p'显示以/开头的行 
  31.          a:\string :在指定的行后面追加新的行,内容为string 
  32.            \n :可以换行 
  33.          i:\string: 在指定的行前面追加新行,内容为string 
  34.          r FILE:将指定的文件的内容添加至符合条件的行处。               sed'2r /etc/issue' /etc/fstab 将/etc/issue文件显示在/etc/fstab 后面的第二行 
  35.          w FILE;将地址指定范围内的行另存至指定文件中 
  36.          s/pattern/string/:  查找并替换,默认只替换每一行中第一次被模式匹配到的串例如:sed's/oot/OOT/' /etc/fstab 
  37.     加修饰符: 
  38.            g:全局替换 
  39.            i:忽略字符大小写 
  40.            s///:s###,s@@@等等,都能用。 
  41.            &:引用模式匹配的整个串  例子: sed 's#l..e#&r#g' sed.txt 把文件中l..e替换成l..er 
  42.             
  43. sed练习题:         
  44.     1、删除/etc/grub.conf文件中行首的空白符; 
  45.         sed 's/^[[:space:]]+//g' /etc/inittab 
  46.     2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5; 
  47.         sed -n 's/\(id:\)[0-9]\(:initdefault\)/\15\2/p' /etc/inittab 
  48.     3、删除/etc/inittab文件中的空白行; 
  49.         sed '/^$/d' /etc/inittab 
  50.     4、删除/etc/inittab文件中开头的#号;  
  51.         sed 's/^#//p' /etc/inittab 
  52.     5、删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符; 
  53.         sed 's/^#[[:space:]]\{1,\}//p' /etc/inittab 
  54.     6、删除某文件中以空白字符后面跟#类的行中的开头的空白字符及# 
  55.         sed 's/^[[:space:]]\{1,\}#//p' /etc/inittab 
  56.         sed -r 's/^[[:space:]]+#//g' /etc/inittab 
  57.     7、取出一个文件路径的目录名称; 
  58.         echo "/etc/rc.d/" | sed -r 's@^(/.*/)[^/]+/?@\1@g'   
  59.     8、取出一个文件路径的基名(也就是目录名称后面的) 
  60.         echo "/etc/rc.d/" | sed -r 's@^/.*/([^/]+)/?@\1@g'