sed命令基本用法

来源:互联网 发布:万维数据采集仪 编辑:程序博客网 时间:2024/05/02 20:57

1、sed:Stream Editor  行编辑器。工作原理:默认不编辑源文件,仅仅对模式空间的数据做处理。一行行将文件读入模式空间,处理完后再将模式空间的内容输出一遍。

sed和grep、awk编辑器都是shell编程中的重要工具。


2、sed语法:

sed       [option]       'AddressCommand'      file

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

-i:直接修改源文件,不建议使用

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

-f:  sed -f /path/to/scripts file   执行脚本

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


Address:

1>StartLine,Endline

     比如1,100

    $代表最后一行

2>/RegExp/

     /^root/

3>/pattern1/,/pattern2/

    第一次被匹配到最后一次被匹配

4>LineNumber

   指定的行

5>StartLine,+N

    从StartLine开始,向后N行


Command:

      d:删除符合条件的行

      p:显示符合条件的行

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

       i  \string  :在制定的行前边插入新行,内容为string

       r FILE:将文件内容添加到符合条件的行处

       w FILE:将地址指定的范围内的行写入到指定文件

      s/pattern/string/ 修饰符:查找并替换,默认只替换每一行中的第一次没模式匹配到的字符串,/可以用其他的符号代替如s### s@@@

             加修饰符g:全局替换

                              i:忽略字符大小写

      &:引用模式匹配整个串


3、使用实例

sed  "1,2d" /etc/fstab  //删除1-2行的内容                     

sed  “1,2d” /etc/fstab //删除1-2行的内容  

sed  “/^\//d”  /etc/fstab //删除斜线开头的行

sed -n  “/^\//p”  /etc/fstab  //-n静默模式,只显示符合条件的行,不再显示模式空间的行

sed  “/^\//a \#hello1\n#hello2”  /etc/fstab  //符合条件的行后追加两行

 

sed  “2r /etc/issue” /etc/fstab  //将符合条件的第二行后边追加上从issue文件中读取的内容

 

 

sed “/boot/w /tmp/1.txt” /etc/fstab //将符合条件的行写到目标文件

 

sed “s/oot/OOT/g” /etc/fstab //将文件中所有的行中凡是有oot的替换为OOT   其中g全局替换

 

sed  ‘s#l..e#&r#g’  sed.txt // 将前边匹配到的字串用&引用

 

sed  ‘s#\(l..e\)#\1r#g’  sed.txt // 将前边匹配到的字串用\1引用  #号里边使用/就不用转义了,里边的分组()得转义

 

 

history | sed ‘s#^[[:space:]]*##g’ | cut -d ‘ ’ -f1 //用于进行查看监控执行命令历史很好用


echo '/etc/rc.d/1.txt' | sed  's@^(/.*/)(.*)@\2@g'   //取得路径的文件名(基名)取得路径文件名



    



0 0
原创粉丝点击