码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记之sed命令使用

时间:2015-12-26 00:00:40      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:编辑器   空间   sed   

一、概述

    1、  sed 全称为Stream Editor,就是行编辑器,意味着一次只处理一行文本,sed将被匹配到            的行放到自己特定的空间(通常称为模式空间)中进行编辑;然后再根据结果进行输出显示;

    2、  sed中还有一段空间称为保持空间,sed模式空间中的内容可以与保持空间的内容可以进            行自由互换,实际工作中用处很少,仅作参考;

Sed工作流程如图

技术分享

二、sed命令使用

   sed [OPTION]... ‘script‘ [input-file]..

             常用选项:

         -n:匹配到的行的内容至屏幕;

         -e script, --expression=script:多点编辑;

         -f /PATH/TO/SED_SCRIPT_FILE:支持使用脚本;

            

         -r, --regexp-extended:支持使用扩展正则表达式;

         -i[SUFFIX], --in-place[=SUFFIX]:直接编辑原文件,慎用;

  地址定界:

关于地址定界:

可以帮助sed去定义处理哪些行,如果不加参数则处理所有的行;

         (1) 空地址:对全文进行处理;

         (2) 单地址:

               #:指定行;

               /pattern/: 被此模式所匹配到的每一行;

         (3) 地址范围:

               ##

               #+#

               #/pattern1/

               /pat1/,/pat2/

               $: 最后一行;

         (4) 步进地址:~

                   1~2:所有奇数行

                     2~2:所有偶数行

  d:删除

技术分享

       p: 显示模式间中的内容;显示奇数行空

技术分享

a \text :在行后面追加文本“text”,支持使用\n实现多行追加;


技术分享

i \text :在行前面插入文本“text”,支持使用\n实现多行插入;与a \text使用方法相同,只是会在指定行的前面加入新行

c\text: 把匹配到的行替换为此处指定的文本“text"

技术分享

w /PATH/TO/SOMEFILE: 保存模式空间匹配到的行至指定的文件中;

技术分享

r/PATH/FROM/SOMEFILE: 读取指定文件的内容至当前文件被模式匹配到的行后面;文件合并;

技术分享

  = 为模式匹配到的行打印行号;

技术分享


 !:条件取反;

 例: ~]# sed ‘1!d‘ /etc/passwd

root:x:0:0:root:/root:/bin/bash

  s///: 查找替换,其分隔符可自行指定,常用的有s@@@,s###等;

           替换标记:

               g: 全局替换;

               w /PATH/TO/SOMEFILE: 将替换成功的结果保存至指定文件中;

               p: 显示替换成功的行;


替换查找命令在下面做两个示例:

将文件中#号替换为无:

技术分享

#包括#后面的空白字符替换为无

技术分享

学习笔记之sed命令使用

标签:编辑器   空间   sed   

原文地址:http://519137.blog.51cto.com/509137/1728406

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!