sed 基本用法

sed:Stream Editor

    行编辑器

    默认不修改文件内容,仅对模式空间中的数据做处理,处理结束后,将模式空间打印至屏幕

sed [options] ‘AddressCommand’ file ...

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

   -i:直接修改原文件

   -e:可同时执行多个脚本

   -f /PATH/TO/SED_SCRIPT

      sed -f /path/to/scripts file

   -r:使用扩展正则表达式


   d: 删除符合条件的行

   p:显示符合条件的行

   a:\string:再指定的行后面追加新行,内容为string

      \n可以换行

   i:\string:在指定的行前面添加新行,内容为string 

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

   w FILE:讲地址指定的范围内的行另存至指定的文件中

   s/pattern/string/:查找并替换,默认只替换每行中第一次被模式匹配的行

   [root@james ~]# sed s/oot/OOT/ /etc/fstab 

      s/pattern/string/g 全局替换

      i 忽略字符大小写

      /// @@@ ###通用


删除前两行

sed '1,2d' /tmp/text.txt


删除第一个行和最后一行

sed '1,$-1d' /tmp/text.txt


删除一到最后一行

sed '1,$d' /tmp/text.txt


删除前三行

sed '1,+2d' /tmp/text.txt



删除指定行

[root@james ~]# sed '2d' /tmp/text.txt


删除行里有8的

[root@james ~]# sed '/8/d' /tmp/text.txt


----------


打印符合条件的行

sed -n '1p' /tmp/test.txt