sed 文本处理工具介绍

sed简介:

文本处理三剑客之一的sed

sed是一种行编辑器,它一次处理一行内容,本身是一个管道命令,对行的数据进行 替换 增加 删除 选取的工作

sed的命令为:sed[opition] ‘script’ inputfile…

                                     ‘地址命令’

常用的选项:

         -n 不输出模式空间内容到屏幕

         -e 多点编辑

         -r 支持使用扩展正则表达式

         -i.bak 备份文件并原处编辑

常用命令:
        a ∶ 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
        c ∶ 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
        d ∶ 删除,因为是删除,所以 d 后面通常不接任何内容
         i ∶ 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
         p∶ 列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起用
         s∶ 取代,可以直接进行替换的工作。通常这个 s 的动作可以搭配正则表达式。

地址定界:

        1.(1)  不给地址:对全文进行处理
           (2)  单地址:
              #:  指定的行
              /pattern/ :被此处模式所能够匹配到的每一行
           (3)  地址范围:
            #,#
            #,+#
          /pat1/,/pat2/
           #,/pat1/
            (4) ~ :步进
              1~2  奇数行
              2~2  偶数行
编辑命令:
         d:  删除模式空间匹配的行
         p:  显示模式空间中的内容
         a [\]text :在指定行 后面 追加文本
         支持 使用\n 实现多行追加
          i [\]text :在行前面 插入文本
            c [\]text :替换行为单行或多行文本
        w /path/somefile:  保存模式匹配的行至指定文件
         r /path/somefile :读取指定文件的文本至 模式空间中
        匹配 到的行后
        =:  为模式空间中的行打印行号
        !: 模式空间中匹配行取反处理

sed工具
      s/// :查找替换, 支持使用其它分隔符,s@@@ ,s###
      替换标记:
      g:  行内全局替换
      p:  显示替换成功的行
      w  /PATH/TO/SOMEFILE :将替换成功的 行 保存至文件中

如果没有定址,sed将对全文进行处理

举例:[本次我们有一个文件f1] 定义了五行内容

sed 文本处理工具介绍
  如:只显示第三行 sed -n ‘3p’ f1

sed 文本处理工具介绍 

 只看文件第1行和第3行之间的文件

sed 文本处理工具介绍

 删除第1行的文件

 sed 文本处理工具介绍
a与i 比较相似i是前插a是后加:

sed 文本处理工具介绍

 而且还有三个取它们它们分别代表不同的意思:

c :整行替换或文本

g:全局替换

s:可跟正则表达式

sed 文本处理工具介绍

sed 文本处理工具介绍

  其次sed工具还有些高级编辑命令:

            h:  把模式空间中的内容覆盖至保持空间中
            H :把模式空间中的内容追加至保持空间中
           g:  从保持空间取出数据覆盖至模式空间
           G :从保持空间取出内容追加至模式空间
           x:  把模式空间中的内容与保持空间中的内容进行互换
          n:  读取匹配到的行的下一行 覆盖 至模式空间
          N :读取匹配到的行的下一行 追加 至模式空间
         d:  删除模式空间中的行
         D :删除 当前模式空间开端至\n 的内容( 不再传 至标准输
         出),放弃之后的命令,但是对剩余模式空间重新执行sed 

                     sed -n ‘n;p’ FILE

sed 文本处理工具介绍

                     sed ‘1!G;h;$!d’ FI LE
                     sed ‘N;D‘ FILE
                     sed ‘$!N;$!D’ FILE
                     sed ‘$!d’ FILE
                     sed ‘G’ FILE
                     sed ‘g’ FILE
                     sed ‘/^$/d;G’ FILE
                     sed ‘n;d’ FILE
                     sed -n ‘1!G;h;$p’ FILE




原创文章,作者:gd1479,如若转载,请注明出处:http://www.178linux.com/78447

(0)
gd1479gd1479
上一篇 2017-06-24
下一篇 2017-06-24

相关推荐

  • 初入命令世界

    一、inode节点号         在linux中,每一个文件都有唯一的inode号,inode号也是系统识别的唯一编码,而文件名仅仅是为了使用者区分辨认, inode (index node )表中包含文件系统所有文件列表 一个节点(索引节点)是在一个表项,包含有关…

    2017-05-26
  • 程序包管理yum

    YUM: YellowdogUpdate Modifier,rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata) 文件服务器:     ftp://     http:// &n…

    Linux干货 2016-08-23
  • echo命令的简单用法和实例

        在CentOS 6.8版本下,通过实例的形式,展现选项和参数的灵活运用,可以简明的了解echo的用法。 一、语法:echo [SHORT-OPTION]… [STRING]… ;echo [选项]…[参数]       作用:将需要的内容输出到终端或者其他文件。 二、实例和选项参数的用法: (1)文本…

    Linux干货 2017-03-27
  • linux发展史

    通过本篇文章,读者可以了解Linux的基本概念、历史、发展情况; 首先,我们通过简单的介绍Linux,了解什么是linux以及它的发展背景; 前言:操作系统介绍 内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序; 内核能够控制硬件,比如:让CPU可以运算、让硬盘可以读写数据…

    Linux干货 2016-10-14
  • 学习标准I/O和管道的心得体会

    重定向、标准输出、标准输入、标准错误、管道的命令整理

    2017-11-20
  • 2、基本命令介绍

    http://note.youdao.com/yws/public/redirect/share?id=dbbed5e1e3ecce8712076f11e70fc038&type=false

    Linux干货 2016-08-08