=============Sed==================
Sed:是一款流编辑工具,用来对文本进行过滤与替换工作,特别是当你想对几十个配置文件进行统一修改时,你会体会到它的魅力;Sed通过一次仅读取一行内容来对某           些指令进行处理后输出,所以Sed更适合处理大数据文件;Sed通过文件或管道读取文件内容,但它默认并不直接修改源文件,而是将读入的内容复制到缓冲区(模           式空间),然后根据相应的指令对缓冲区中的内容进行处理并输出结果,默认输出至标准输出(即屏幕上);

一:Sed文本过滤工具,针对于行过滤:
      (1)sed -n ‘xxp’
    eg: sed -n ‘1p’ 打印第一行
    sed -n ‘1,3p’ 打印1到3行
    sed -n ‘1~2’ 打印奇数行,从第1行开始,每2行匹配一次操作地址  

                 

        (2)sed -n ‘/^xxx/p’ 打印以xx开头的行
                sed -n ‘/xxx$/p’ 打印以xx结尾的行

                 

         (3)sed -e 可以执行相匹配的多个条件
        sed ‘/^a/p;/^[0-9]/p’ ceshi.sh 可以用封号将多个指令隔开
        eg: sed -e ‘/^a/p’ -e ‘/^[0-9]/p’

                    

           (4) sed -n ‘//=’ 显示所匹配的行号
      eg: sed -n ‘/^a/=’ ceshi.sh

                 

              (5) sed ‘//a ***’ 向匹配的行后追加内容,a后追加内容
       sed ‘//i ****’ 向匹配的行前添加内容,i后为追加内容
         sed ‘2a chehuiwei’ ceshi.sh 在第二行后追加
      sed ‘3i chehuiwei’ ceshi.sh 在第三行前添加
         sed ‘/ONBOOT/c ONBOOT=yes’ test.txt 将包含相关内容的行的内容更改 

                      

         

  (6) sed -n ‘1,3!p’ 取反

          

        (7)sed ‘1,2d’ ceshi.sh 删除1到2行
            sed ‘/^a/d’ ceshi.sh 删除以a开头的行
       sed ‘/^$/d’ ceshi.sh 删除文件中的空白行

                  

  (8) sed ‘s/旧的内容/替换的新内容/g’ ceshi.sh 替换
    sed -n ‘1,2s/旧的内容/替换的新内容/p’ ceshi.sh 将前两行打印出来并替换相关内容
    sed ‘s/旧的内容/替换的新内容/n’ ceshi.sh 当一行中有多个要替换的内容时,n指定替换第几个
    grep -v ^$ ceshi.sh |sed 's/ru[1-3]/\<&\>/1;s/ru[1-3]/\<\/&\>/2' 用&来代替正则表达式匹配的内容

     注意:如果规则表达式或替换字符串中有许多斜杠,则可以在s之后指定一个不同的字符来更改分割符:
    eg: sed -e ‘s:/usr/local:/usr:g’ ceshi.sh 此时:是替换分隔符,sed会将/usr/local替换成/usr,e可加可不加 

                

      

        

  (9)sed -i 文件名称 将更改内容写入文件
      eg: sed -i ‘s/旧的内容/新的内容/g’ ceshi.sh 

           

 

posted on 2017-09-27 15:43  狼途  阅读(478)  评论(0编辑  收藏  举报