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

相关推荐

  • shell编程之函数

    函数:函数function是由若干条shell命令组成的语句块,实现代码 重用和模块化编程      1)函数的定义: 可在 命令行,脚本的一部分,只有函数的单独文件 中定义        两部分组成:函数名和函数体;函…

    Linux干货 2016-08-21
  • 手动自制Mini Linux

        linux系统内核非常的精简,而且基于一切皆文件的思想,使得我们可以再现有系统上挂载一个空硬盘,利用现有系统编译一个内核和相关程序文件并拷贝到空硬盘上。我们就可以用空硬盘来单独运行一个精简的linux系统,这对于依赖于注册表的windows系统来说是不可能实现的。本文简要介绍一下一个mini linux的安装制…

    Linux干货 2016-05-03
  • 用shell脚本实现每天定时收集全网日志到一台服务器

    需求 现在公司有这样一个需求,需要收集每天全网运行业务的设备上的某个特定目录底下的日志到一台服务器(这台服务器我们简称logserver),这并在这台logserver上生成以日期为名字的目录 解决思路: 在logserver的crontab里设置两个脚本,在当日晚上23:30执行脚本1收集当日即将被删除的全网脚本;在并在早上8:30执行脚本2,收集昨日全网…

    Linux干货 2015-07-27
  • linux基础命令

            转眼已经过了一周,在南老师的悉心指导下,我学会了一些基础的LINUX命令,下面做一下本周小结。 命令1:tty、who am i、whoami、w 作用:查看当前登录信息            终端传递信息 echo hello &g…

    Linux干货 2017-07-15
  • 磁盘管理进阶

    1、/etc/fstab文件     设备名 挂载点 文件系统 挂载选项 转储频率 自检次序     UUID=e79e4c9d-8d0f-4675-8945-9ec23ea77c67 /             &nb…

    Linux干货 2016-09-02
  • 笔记整理:权限管理3-ACL

    ACL 访问控制列表,并不是所有的Linux文件系统,都支持ACL。FAT文件系统也不支持ACL   ACL文件系统中,不支持chmod等命令。同时不能更改文件权限。不存在文件权限。 问题提出 只让wang用户,对该文件不能够访问,同时不影响其他任何用户对该文件的操作。   ACL特点 针对单一用户或群组,单一文件或目录,进行rwx权限设…

    Linux干货 2016-08-05