linux_sed的使用

sed的使用:(流编辑器)
  sed: Stream Editor : 行编辑器

    sed 模式空间: 默认不编辑原文件,逐行读取原文件中的行到模式空间,对模式空间中的数据进行处理,处理完成后输出打印
       sed [option] 'AddressCommand' file...
             -n : 不再默认显示模式空间中的内容,只打印符合的内容
             -i : 直接修改原文件
             -e SCRIPT -e SCRIPT ... : 可以同时执行多个脚本
             -f script_file : 使用脚本文件的内容对文件进行处理
             -r : 使用拓展正则表达式

         Address:
        1. Startline,Endline:  1,100 从第1行到100行
        2. LineNum: 指定某一行
             $ : 表示最后一行, $-1 : 表示倒数第二行
        3. Startline,+N : 从指定的起始行开始向后N行
        4. /Regexp/ : /^root/ 以root 开头的行
        5. /Regexp1/,/Regexp2/ 表示从第一次被Regexp 匹配的行开始到 第一次被Regexp2 匹配到的行结束
    
     Command:
        d : 删除符合条件的行
        p : 显示打印符合条件的行
        a \string : 在指定的行后面追加新行,内容为string
               \n:换行
        i \string : 在指定的行前面追加新行,内容为string
        r file : 将指定文件的内容添加至符合条件的行处
        w file : 将符合条件的内容另存至指定的文件中
        s/Regexp/string/[gi] : 查找符合模式的行,并将其替换为指定的内容,默认只替换每行中第一次匹配的内容
                         g : 全局替换
                         i : 忽略大小写
             s/// => s### => s@@@ 分隔符可以使用其他的特殊符合
             
            & : 引用模式匹配的字符串
              l..e : like --> liker
                     love --> lover

                 sed 's/l..e/&r/g' /tmp/test.txt
                 sed 's/\(l..e\)/\1r/r' /tmp/test.txt


                     like --> Like
                     love --> Love

                 sed 's/l\(..e\)/L\1/g' /tmp/test.txt

posted @ 2016-01-06 12:38  Mr.hale  阅读(138)  评论(0编辑  收藏  举报