文本处理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

相关推荐

  • Linux系统中快捷键和man手册讲解

    1、Linux中的man手册   man这个单词的翻译是男人的意思,但在Linux中是我们对于命令的帮助查找,我们知道在Linux中命令有很多,简直浩瀚如海,我们不可能都能理解每个命令的意思。所以,Linux的帮助文件大大解决了我们对于命令的理解性。通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。 2、语法格式…

    Linux干货 2016-10-17
  • 第六周作业

    第六周作业 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :进入末行模式 % s/^[[:space:]]/#&…

    Linux干货 2016-10-09
  • 111-puppet

    一.运维层次分类 OS Provision:

    2016-12-04
  • N-28作业第一周

    N-28作业第一周小结:以前看存储视频里面讲存储架构里不清楚的部分居然开始清晰。基础命令需要多花时间熟悉。

    2017-12-05
  • Python 数据结构

    python 内置数据结构python 内置数据结构数字的处理函数: round() 五舍六入       2.5  2     2.6    3 floor() 向下取整       2.5  2     2.6    2 ceil() 向上取整       2.5  3     2.6    3 min() 取最小的       1,2,3      1…

    Linux干货 2017-09-23
  • Linux 启动流程

    Linux启动流程 POST–>Boot Sequence–>MBR–>Grub–>Kernel(initramfs)–>rootfs–chroot(根切换)–>/sbin/init–>RunLevel–&gt…

    Linux干货 2016-06-09