文本处理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基础介绍

    Linux及计算机基础介绍 计算机的组成及其功能 What:计算机的组成是什么? 计算机的主要部件: CPU:可分为运算器、控制器、寄存器、缓存等 存储器:比如内存。执行程序时,会将程序及相关数据加载进内存,供CPU读取 输入设备:比如:键盘。用于下达指令及输入数据。 输出设备:比如显示器。用户显示和输出指令执行的结果等 冯诺依曼体系中提出的五大部件为:运算…

    Linux干货 2016-09-19
  • 第一周:Linux基础之系统入门知识(一)

    一、计算机的组成及功能 现代计算机的基本结构是由匈牙利-美国科学家冯· 诺依曼于1946年提出的。迄今为止所有进入实用的电子计算机  都是按冯· 诺依曼提出的结构体系和工作原理设计制造的故又统称为“冯·诺依曼型计算机"。 根据冯.诺依曼原理:计算机由运算器、控制器、存储器、输入设备、输出设备所组成 运算器: 进行算术与逻辑运算 控制器:&…

    Linux干货 2016-09-18
  • 脚本

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现;     #!/bin/bash     #     sum=0 &n…

    Linux干货 2016-12-23
  • Linux 登录趣事

    初入Linux运维,在虚拟机VMware12中装载CentOS6和CentOS7,均带有图形化界面。简单熟悉Linux,发现了一些关于登录的趣事,在此与大家分享。 运行环境:CentOS6和CentOS7 工具:系统里的terminal 登录趣事(以CentOS6为例): (1)自动登录图形化界面 每次启动CentOS6,短暂等待之后便会进入登录界面,然后选…

    2017-07-15
  • N26-第十四周

    1、系统的INPUT和OUTPUT默认策略为DROP;[root@centos7 ~]# iptables -P INPUT DROP[root@centos7 ~]# iptables -P OUTPUT DROP1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务…

    Linux干货 2017-06-20
  • 深入解析:分布式系统的事务处理经典问题及模型(转载分享)

    摘要:分布式系统需要在数据完整、一致性和性能间做平衡。本文系统介绍了处理分布式数据一致性的技术模型,如:Master-Slave,Master-Master,2PC/3PC,经典的将军问题,Paxos,以及Dynamo的NRW和VectorClock的模型。 编者按:数据服务的高可用是所有企业都想拥有的,但是要想让数据有高可用性,就需要冗余数据写多份。写多份…

    Linux干货 2015-04-04