sed学习笔记

---恢复内容开始---

sed是一种流处理工具,通过匹配模式按行读取文件中的内容到内存的模式空间内,而后再根据command做处理。

格式:

sed [options] 'addresscommand' file..

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

  -i:修改源文件

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

  -f /PATH/TO/SED_SCRIPT

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

Address:

  1.StartLine,EndLine

    比如1,100

  2./RegExp/

    /^root/

  3./pattern1/,/pattern2/

  从第一次被pattern1匹配的行-->第一次被pattern2匹配的行中间的所有行

  4.LineNumber

    指定的行

  5.StartLine, +N

    从StartLine开始,向后的N行

Command:

  d:删除否和条件的行;

  p:显示符合条件的行;

  a string:在指定行后追加新行,内容为string

    -n 可用于换行

  i  string:在指定行前追加新行,内容为string

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

  w File:将指定范围内的内容另存至指定 的文件中

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

    加修饰符

    g:全局替换

    i:忽略字符大小写

  s/ / / : s### , s@@@

    ( ) , 1 , 2

   &:引用模式匹配的整个串

几个练习题:

1、删除/etc/gurb.conf文件中行首的空白符

解:sed  's/^[[:space:]]*//g' /etc/grub.conf

2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5

解:sed 's/id:3/id:5/' /etc/inittab

3、删除/etc/inittab文件中的空白行

解:sed '/^$/d' /etc/inittab

4、删除/etc/inittab文件中开头的#号

解:sed 's/^#//g' /etc/inittab

---恢复内容结束---

原文地址:https://www.cnblogs.com/nickqian/p/3764010.html