文本处理sed的使用

语法:sed【option】、、、‘script’ inputfile、、、

选项:

        -n:不输出模式空间内容到屏幕,即不自动打印
        -e: 多点编辑
        -f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本
        -r: 支持使用扩展正则表达式
        -i.bak: 备份文件并原处编辑

script:

         地址定界:
                      (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:读取指定文件的文本至模式空间中匹配到的行后
                      =: 为模式空间中的行打印行号
                      !:模式空间中匹配行取反处理
s///:查找替换,支持使用其它分隔符,s@@@,s###
      替换标记:
                      g: 行内全局替换
                      p: 显示替换成功的行
                      w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中
高级编辑命令:
                   h: 把模式空间中的内容覆盖至保持空间中
                   H:把模式空间中的内容追加至保持空间中
                   g: 从保持空间取出数据覆盖至模式空间
                   G:从保持空间取出内容追加至模式空间
                   x: 把模式空间中的内容与保持空间中的内容进行互换
                   n: 读取匹配到的行的下一行覆盖至模式空间
                   N:读取匹配到的行的下一行追加至模式空间
                   d: 删除模式空间中的行
                   D:删除当前模式空间开端至\n的内容(不再传至标准输出),放弃之后的命令,但是对剩余模式空间重新执行sed
元字符集:

             ^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。

             $ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。

             . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。

            * 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。

            [] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。

            [^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字母开头,紧跟ed的行。

            \(..\) 匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers

            & 保存搜索字符用来替换其他字符,如s/love/**&**/,love这成**love**。

            \< 匹配单词的开始。<love 匹配包含以love开头的单词的行。

            \> 匹配单词的结束。

            x\{m\} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。

            x\{m,\} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。

            x\{m,n\} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。

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

(0)
忠神通忠神通
上一篇 2017-05-01 16:32
下一篇 2017-05-01 20:15

相关推荐

  • Python的模块及详解(1)

    psuitil模块 filecmp模块 pycurl模块 一、系统性能信息模块psuitil psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,…

    2018-01-15
  • linux上的组管理

    上一次我们谈了CentOS上的用户管理,现在我们再来谈下CentOS上的用户组管理。 groupadd创建一个新的组 用法如下: groupadd [选项] groupname 常用选项: -f 强制添加一个组(这个组可能已经存在系统中) -g 指定组的id; -r 创建系统工作组(系统工作组的组ID小于500) -K 覆盖配置文件/ect/log…

    Linux干货 2017-04-09
  • N26-第十三周

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)  1)共享名为shared,工作组为magedu;  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;  3)添加samb…

    Linux干货 2017-06-01
  • wk_04作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -r  /etc/skel/ /home/tuser1 # chmod 700 /home/tuser1 2、编辑/etc/group…

    Linux干货 2016-12-27
  • linux计算机基础理论

    1. 计算机的组成及其功能 从基本结构上来讲,计算机可以分为五大部分: 运算器、存储器、控制器、输入设备、输出设备。 运算器的功能:实现算术运算和逻辑运算(与控制器组成CPU) 存储器功能:将输入设备接受到的信息以二进制的数据形式存到存储器中。 控制器的功能:将指令逐条从存储中取出,经译码分析后向全机发出相应的操作控制信号作用于其他部件,使各部件有条不紊地协…

    Linux干货 2018-03-04
  • VRRP协议

    VRRP协议 Virtual Router Redundancy Protocol 虚拟路由器冗余协议。 Vrrp协议在linux上的实现(软件实现)是keepalived。 VRRP简单的讲,就是心跳信息。 主节点不断的向备用节点广播信息,信息包含自己的心跳和优先级。 不光如此,还可以在主节点上安装一个监控,来监控其他资源,如果这些资源运行正常,就可以给其…

    2016-11-02