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

相关推荐

  • linux用户与用户组详解

    LINUX用户与用户组详解     1,用户和用户组文件   在linux中,用户帐号,用户密码,用户组信息和用户组密码均是存放在不同的配置文件中的。分别是 passed gpassd shadow group 中。   在linux系统中,所创建的用户帐号和其相关信息(密码除外)均是存放在/etc…

    Linux干货 2017-07-22
  • Linux文件管理和Bash特性

    一、Linux基本文件管理命令 主要介绍cp、mv、rm命令的基本用法以及使用示例 cp命令 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录 cp (选项) (参数) 常用选项: -a:此参数的效果和同时指定”-dpR”参数相同,用于实现归档; -d:复制符号链接文件本身,而非其指向的源文件; -f:强行复制文件或目录,不论目标文件或目录是…

    Linux干货 2017-07-09
  • 磁盘管理、文件系统管理

    磁盘管理、文件系统管理 磁盘管理 磁盘设备 机械硬盘(非固态) I/O Ports —– I/O 设备地址 块设备:Block 存取单位“块”;(磁盘) 字符设备:char 存取单位“字符”;(键盘) 设备文件:关联一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信; – 设备号码: 主设备号 major number…

    Linux干货 2016-07-22
  • Linux下的SSH端口转发

    通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意的端口的访问。端口转发可以分为三种,正向端口转发,反向端口转发和动态端口转发。为了演示这三种端口转发方式的用法我们先假设存在有2个网域Office和Prod,在…

    Linux干货 2015-02-09
  • 包管理工具rpm和yum的用法

    包管理工具rpm和yum的用法 一、rpm的用法 rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐收到其他发行版的采用,RPM套件管理方式的出现,让Linux易于安装、升级,间接提升了Linux的适用性。 rpm用法:rpm [OPTION…] 1、rpm安装…

    Linux干货 2016-08-24
  • ansible进阶(roles应用)

    ansible 进阶 一、roles简介 一个项目从开始到结束,不是简单几十个playbook就可以完事了,当文件数很多,有上百个的话,仅通过简单的includes不停的引用,那最终的结果错综复杂。这个时候ansible roles就可以很好的发挥它的作用了。 roles,字面意思是角色的含义,可以理解为有相互关联功能的集合。我们把安装ntp、mem、ngi…

    2017-01-05